1

我有一个窗口,里面有子窗口。子窗口占用大约 1000 像素的垂直空间。然而,我们的用户并不总是有 1000 像素的可用垂直空间——他们可能只有 500 或 600 像素。

我希望能够以 500 像素高的大小显示此窗口,并让用户上下“滚动”窗口以查看全部内容。窗口应始终为 500 像素高,但其中的视图应更改。

假设我可以在某处添加滚动条,以便用户可以选择他想查看的窗口部分。Windows 通常会从高度 0 到高度 500 绘制窗口内容;例如,我如何告诉它“从 250 高度绘画到 750 高度”?

我知道我可以使用诸如SetViewportOrgExetc 之类的功能设置视口,但这些功能需要设备上下文 - 如果我希望它们是“永久的”,我应该什么时候调用它们?当我从 Windows 收到 WM_PAINT 消息时,我会打电话给他们吗?还是在其他时间?我想使用该系列的哪些功能?

编辑添加:我不想实际更改子窗口的位置 - 它们应该保持在相同的位置,唯一应该改变的是进入窗口的视图。

谢谢。

4

1 回答 1

1

如果(当您收到有关滚动条更改的消息时)您使用 SW_SCROLLCHILDREN 标志调用 ScrollWindowEx,则应告知子窗口与其他所有内容一起滚动。这应该使他们处于正确的位置。

于 2011-01-11T02:19:35.693 回答