我有一个窗口,里面有子窗口。子窗口占用大约 1000 像素的垂直空间。然而,我们的用户并不总是有 1000 像素的可用垂直空间——他们可能只有 500 或 600 像素。
我希望能够以 500 像素高的大小显示此窗口,并让用户上下“滚动”窗口以查看全部内容。窗口应始终为 500 像素高,但其中的视图应更改。
假设我可以在某处添加滚动条,以便用户可以选择他想查看的窗口部分。Windows 通常会从高度 0 到高度 500 绘制窗口内容;例如,我如何告诉它“从 250 高度绘画到 750 高度”?
我知道我可以使用诸如SetViewportOrgEx
etc 之类的功能设置视口,但这些功能需要设备上下文 - 如果我希望它们是“永久的”,我应该什么时候调用它们?当我从 Windows 收到 WM_PAINT 消息时,我会打电话给他们吗?还是在其他时间?我想使用该系列的哪些功能?
编辑添加:我不想实际更改子窗口的位置 - 它们应该保持在相同的位置,唯一应该改变的是进入窗口的视图。
谢谢。