【问题标题】:Win32 GUI: resize a dialogWin32 GUI:调整对话框大小
【发布时间】:2010-02-10 14:42:58
【问题描述】:

我有一个基本的基于 Win32 对话框的应用程序。如何调整大小?

如果它是一个窗口,默认情况下这是可能的(它会触发 WM_SIZE)。我是对话框的新手,我不知道如何:1. 当鼠标光标悬停在边缘时,它应该更改为 IDC_SIZEWE 或 IDC_SIZENS,2. 只需调整对话框的大小,我知道如何定位对话框的内容.

【问题讨论】:

    标签: user-interface winapi


    【解决方案1】:

    你不需要自己做将光标移动到边缘的工作,你只需要在 .rc 文件或对话框编辑器中设置一个样式。

    从对话框编辑器中:将边框设置为调整大小以允许调整对话框大小。

    从直接编辑 .rc 文件开始:| WS_THICKFRAME 附加到带有 STYLE 的行

    【讨论】:

    • 我试过:DLG_MAIN DIALOGEX 20, 40, 260, 130 和 STYLE WS_THICKFRAME,但它不起作用...
    • 哦,不!我真笨!我编辑了错误的 .rc 文件!它适用于 WS_THICKFRAME!
    【解决方案2】:

    您在对话框中设置了哪些窗口样式?

    如果您使用的是 MFC 等框架,您可以通过确保设置了 WS_THICKFRAME / WS_SIZEBOX 或其他合适的窗口样式来修复无法再调整大小的对话框。在某些开发环境中,如果您使用具有运行时支持的东西,也可以在对话框的属性中设置此项。

    如果您手动创建了窗口,请在对CreateWindow / CreateWindowEx 的调用中指定其中一个以及您的其他窗口样式。一些窗口样式,例如WS_OVERLAPPED 也暗示了一个可调整大小的框架。

    Window Styles @ MSDN
    CreateWindowEx @ MSDN

    【讨论】:

      【解决方案3】:

      注意 - 我尝试通过在 onInit() 中的窗口上调用 ModifyStyle() 来执行此操作。但是它不起作用。你得到了调整大小的光标,但没有调整大小。

      这显然必须在 RC 文件中设置,或者可能在窗口创建中更早设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 1970-01-01
        • 2012-01-26
        相关资源
        最近更新 更多