Windows 3.1 'C' program using Borland 4.5
When processing WM_PAINT messages I call a function
that determines the X,Y coordinates and then writes
out some text/graphics and also uses a MoveWindow
to properly place some Checkboxes. These Checkboxes
were created during the WM_CREATE message and arbritarily
placed at the top left corner at a size of 1 pixel.
To implement scrolling I basically used an example from
the Petzold book that setsthe scroll pos/range while
processing the scrollbar messages, and a SetWindowOrg
while processing the WM_PAINT.
This seems a little slow to me since each checkbox
must be moved via the MoveWindow. Is there another
method to scroll the text/graphics/checkboxes that looks
more fluid.
Also, when I print I simply pass the HDC of the printer in to the function. Everything pronts but the CheckBoxes
(not that I expected them to) How does one print Window
controls such as checkboxes?
1. Create a modeless dialog covering the surface of your whole window. This should have no caption and WS_CHILD style. All controls except scroll bars should be children of this window.
2. Make sure the container for the modeless dialog has WS_CLIPCHILDREN style
3. Move the modeless dialog rather than the individual controls, this way you can do the move with one op.
To print
1. Create a memory bitmap (CreateCompatibleBitmap), and DC (CreateCompatibleDC). Select the bitmap into the DC
2. GetDC on the modeless dialog
3. BitBlt from #2 to #1
4. ReleaseDC on the modeless dialog
5. Send the bitmap to the printer
6. Clear up #1