【问题标题】:How to show more than 50 push buttons on a window?如何在一个窗口上显示超过 50 个按钮?
【发布时间】:2013-05-15 11:45:54
【问题描述】:

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

我已经通过添加自动滚动到窗口

WS_VSCROLL | WS_HSCROLL | ES_AUTOVSCROLL | ES_AUTOHSCROLL

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

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

【问题讨论】:

  • 为什么需要 50 个按钮?
  • @RogerRowland : 这是我的 GUI 的要求。
  • 您必须自己实现滚动。请参阅documentation 了解更多信息。

标签: c windows visual-studio-2010 winapi scroll


【解决方案1】:

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

【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多