How do I change the viewport of a window in win32?

Posted by Colen on Stack Overflow See other posts from Stack Overflow or by Colen
Published on 2011-01-11T01:45:55Z Indexed on 2011/01/11 1:53 UTC
Read the original article Hit count: 177

Filed under:
|
|

Hi,

I have a window with child windows inside in it. The child windows take up about 1000 pixels of vertical space. However, our users don't always have 1000 pixels of vertical space available - they might have as little as 500 or 600 pixels.

I want to be able to display this window at a size of 500 pixels high, and have the user "scroll" up and down the window to see the full contents. The window should always be 500 pixels high, but the view within it should change.

Assume I can add a scroll bar somewhere so the user can choose which part of the window he wants to see. Windows will normally paint the window contents from height 0 to height 500; how do I tell it instead to "paint from height 250 to height 750", for example?

I know that I can set the viewport with functions like SetViewportOrgEx etc, but those functions require a device context - when do I call them if I want them to be "permanent"? Do I call them when I get the WM_PAINT message from windows? Or at some other time? And which functions from that family do I want to use?

Thanks.

© Stack Overflow or respective owner

Related posts about winapi

Related posts about gdi