【发布时间】:2010-02-10 14:42:58
【问题描述】:
我有一个基本的基于 Win32 对话框的应用程序。如何调整大小?
如果它是一个窗口,默认情况下这是可能的(它会触发 WM_SIZE)。我是对话框的新手,我不知道如何:1. 当鼠标光标悬停在边缘时,它应该更改为 IDC_SIZEWE 或 IDC_SIZENS,2. 只需调整对话框的大小,我知道如何定位对话框的内容.
【问题讨论】:
标签: user-interface winapi
我有一个基本的基于 Win32 对话框的应用程序。如何调整大小?
如果它是一个窗口,默认情况下这是可能的(它会触发 WM_SIZE)。我是对话框的新手,我不知道如何:1. 当鼠标光标悬停在边缘时,它应该更改为 IDC_SIZEWE 或 IDC_SIZENS,2. 只需调整对话框的大小,我知道如何定位对话框的内容.
【问题讨论】:
标签: user-interface winapi
你不需要自己做将光标移动到边缘的工作,你只需要在 .rc 文件或对话框编辑器中设置一个样式。
从对话框编辑器中:将边框设置为调整大小以允许调整对话框大小。
从直接编辑 .rc 文件开始: 将 | WS_THICKFRAME 附加到带有 STYLE 的行
【讨论】:
您在对话框中设置了哪些窗口样式?
如果您使用的是 MFC 等框架,您可以通过确保设置了 WS_THICKFRAME / WS_SIZEBOX 或其他合适的窗口样式来修复无法再调整大小的对话框。在某些开发环境中,如果您使用具有运行时支持的东西,也可以在对话框的属性中设置此项。
如果您手动创建了窗口,请在对CreateWindow / CreateWindowEx 的调用中指定其中一个以及您的其他窗口样式。一些窗口样式,例如WS_OVERLAPPED 也暗示了一个可调整大小的框架。
【讨论】:
注意 - 我尝试通过在 onInit() 中的窗口上调用 ModifyStyle() 来执行此操作。但是它不起作用。你得到了调整大小的光标,但没有调整大小。
这显然必须在 RC 文件中设置,或者可能在窗口创建中更早设置。
【讨论】: