【问题标题】:How can I set the size of a Win32 dialog in pixels?如何以像素为单位设置 Win32 对话框的大小?
【发布时间】:2011-08-25 11:19:25
【问题描述】:

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

IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 500, 520
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX

某处是否有比例因子?

【问题讨论】:

    标签: windows winapi dialog rc


    【解决方案1】:

    对话框资源中的单位是dialog units,它们通过相当复杂的过程由对话框字体的尺寸标准化。您可以使用MapDialogRect() 将对话框单位转换为屏幕像素。

    GetDialogBaseUnits() 的文档中有更多详细信息,但推荐的方法是致电 MapDialogRect(),让它为您完成繁重的工作。

    【讨论】:

    • 是的,你不应该使用GetDialogBaseUnits原因是因为它的计算是基于默认的系统字体no one uses anymore。不幸的是,如果有问题的窗口不是对话框,那么您没有太多选择,因为MapDialogRect 不起作用。
    • @CodyGray GetDialogBaseUnits 的文档解释了这些单元的工作原理。它还告诉您调用哪个函数来获取非系统字体的测量值,您也可以将其用于非对话框窗口。
    猜你喜欢
    • 2012-09-25
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2015-07-01
    • 2018-07-04
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多