[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

Question
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

8.0

Baffled by CEdit.SetRect and CRect.DeflateRect

Asked by l_d_allan in Windows MFC Programming

Tags: cedit

Baffled by CEdit.SetRect and CRect.DeflateRect

I'm enhancing an MFC dialog app that has overlapping controls. Now I'd like to implement something fancier.  

Here's how it works now ...
mouse over #2 CTreeCtrl control

222222222222222
222222222222222
222222222222222
222222222222222
222222222222222888888888888888888
222222222222222888888888888888888
222222222222222888888888888888888
222222222222222888888888888888888
222222222222222888888888888888888
222222222222222888888888888888888

mouse over #8 CEdit

222222222222222
222222222222222
222222222222222
222222222222222
888888888888888888888888888888888
888888888888888888888888888888888
888888888888888888888888888888888
888888888888888888888888888888888
888888888888888888888888888888888
888888888888888888888888888888888

The glitch is that the left side text in the #8 CEdit isn't visible when the #2 CTreeControl has focus ... it's covered up by the #2 CTreeCtrl.

What I want to implement is having the text in the #8 CEdit window 'auto-fit' when the #2 CTreeCtrl is in the foreground. It would shrink the left margin sufficiently and let auto-wrap keep all the text in view.

I looked over the documentation, and it would seem like CEdit.GetRect + CRect.DeflateRect + CEdit.SetRect would accomplish what I'm looking for.  The vertical scroll bar would be enabled if all the text wouldn't fit into the shrunk CEdit window.

However, I'm getting unexpected behavior. Several of the margins change, instead of just the left.  And the amount of text gets less/truncated. I don't know if I should be normalizing or otherwise doing coordinate transformations ... or if I'm just fouling up.

If you want to tackle this, I've defined a barebones dialog app with the controls and OnToggle defined. It can be downloaded directly at:
http://groups.yahoo.com/group/InVerse/files/Prototype/Deflate.zip

It has a member function, OnToggle, that I want to cause the 'margin' of the CEdit to deflate and inflate. The CEdit field is preloaded with a long string with embedded new-lines.  The net result should be the text starting off hidden behind #2 CTreeCtrl, then the toggle deflates the right margin so all the text is visible (and can be seen with the scroll bar), and another toggle inflates the right margin so some of the text is again hidden.

It has the vc6 .dsw, .dsp, and associated files. Note that I'm actually trying to get the #8 Cedit window on the right side, but that would not show up in the 'drawing' above due to proportional fonts.

TIA
[+][-]05/05/02 07:51 AM, ID: 6990444Accepted Solution

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

About this solution

Zone: Windows MFC Programming
Tags: cedit
Sign Up Now!
Solution Provided By: Yechezkel
Participating Experts: 1
Solution Grade: A
 
[+][-]05/09/02 08:29 PM, ID: 7000396Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20091111-EE-VQP-92