We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Displaying file in a CScrollView

dd021197
dd021197 asked
on
Medium Priority
356 Views
Last Modified: 2013-11-19
I am using Visual C++ v1.5, under WFW.
I would like to display a filename in a CScrollView, the
file may be >64k, I am currently doing this using TextOut for
each line in the file inside the OnDraw method of the ScrollView.
However, this is very slow, how can I optimise it - has
anyone any sample code?? I have tried using the RectVisible
function inside CDC, and it produces strange results. Any
code/optimisation ideas would be greatly welcome.
Thanks,
Douglas
Comment
Watch Question

You are probably redrawing all of your text every time you scroll, so you need to restrict your text drawing to only the region invalidated by CScrollview.  The SCRIBBLE tutorial (STEP 8) CScrollView::OnDraw() has a good example.  Your implementation will be different the priciple will be the same.  You need to examine the clipping box returned by GetClipBox() to determine which text lines to draw.  Since you know the height of each line by your y increment for TEXTOUT, you should be able to divide the y coordinate of the clip region by the increment to get the starting line.  You can do a similar manipulation to get the number of lines by dividing the box height by the increment.  By restricting the drawing, you will speed up your app.

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.