0

我创建了一个窗口,然后在这个窗口上创建了 50 个按钮,但我只能在我的窗口上看到 10 个按钮。由于我无法向下滚动窗口,其余的都看不见了。

我通过添加添加了自动滚动到窗口

WS_VSCROLL | WS_HSCROLL | ES_AUTOVSCROLL | ES_AUTOHSCROLL

CreateWindowEx函数的窗口样式参数。通过这样做,我可以在窗口上看到一个滚动,但这个滚动是不可移动的。

在这种情况下,添加自动滚动到窗口以查看所有 50 个按钮的可能且简单的解决方案是什么?

4

2 回答 2

1

您将不得不处理 WM_VSCROLL 和 WM_HSCROLL 消息。

于 2013-05-15T13:58:42.107 回答
0

您必须处理滚动条的按钮消息。您使用WS_VSCROLL | WS_HSCROLL您已经注意到可以看到它们的广告启用了滚动条。然而使用ES_AUTOVSCROLL | ES_AUTOHSCROLL并不神奇地意味着窗口会滚动。这些标志用于编辑框,因此在添加字符时它们会自动滚动。您的窗口无法识别这些。

因此,当用户单击滚动条上的按钮时,您必须在消息处理程序中编写一些代码,以自行移动窗口。

由于直接使用 WinAPI 并不容易,我建议使用像 wxWidgets 或 QT 这样的 GUI 库,这将减少错误并使您的生活更轻松,因为已经实现了很多您可能会使用的功能。

如果您出于某种原因坚持使用 WinAPI,您可能必须自己编写大量代码..

于 2013-05-15T13:38:24.637 回答