如何设置Win32对话框的大小(以像素为单位)?

oli*_*kin 3 windows winapi dialog rc

我试图得到一个500x520像素的Win32对话框,但在我的.rc文件中,这些设置让我的窗口比我预期的要大.

IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 500, 520
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
Run Code Online (Sandbox Code Playgroud)

在某处有缩放因子吗?

Dav*_*nan 6

对话框资源中的单位对话框单元,通过相当复杂的过程通过对话框字体的尺寸进行标准化.您可以使用对话框单位转换为屏幕像素MapDialogRect().

文档中有更多详细信息,GetDialogBaseUnits()但建议的方法是调用MapDialogRect()并让它为您完成艰苦的工作.