Win32 GUI:如何调整对话框大小

3

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

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

3个回答

3
你不需要自己动手将光标移动到边缘,只需在.rc文件或对话框编辑器中设置样式即可。
从对话框编辑器中:将边框设置为"Resizing"以允许调整对话框大小。
从直接编辑.rc文件中:在带有STYLE的行末尾追加| WS_THICKFRAME

1
我尝试了DLG_MAIN DIALOGEX 20, 40, 260, 130和STYLE WS_THICKFRAME,但它不起作用... - Lars Kanto
哦,不!我太蠢了!我编辑了错误的.rc文件!它使用WS_THICKFRAME工作! - Lars Kanto

0

你在对话框上设置了哪些窗口样式?

如果你使用的是像MFC这样的框架,你可以通过确保设置了WS_THICKFRAME / WS_SIZEBOX或其他适当的窗口样式来修复不再可调整大小的对话框。在某些开发环境中,如果你使用带有运行时支持的东西,则也可以在对话框属性中设置它。

如果你手动创建窗口,请在调用CreateWindow / CreateWindowEx时指定其中之一以及其他窗口样式。一些窗口样式,如WS_OVERLAPPED也意味着可调整大小的框架。

MSDN上的窗口样式
MSDN上的CreateWindowEx


0
注意 - 我尝试在onInit()中通过调用窗口的ModifyStyle()来实现此操作。然而它不起作用。你会得到调整大小的光标,但没有发生任何调整大小的动作。
显然,这必须在RC文件中设置,或者可能是在窗口创建之前设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接