MFC Dlg盒上的控制安排

时间:2015-11-04 08:40:00

标签: c++ visual-studio-2012 mfc space

如何在MFC对话框中排列控件之间的空格?

enter image description here

静态框(RX数据)和大编辑框之间的空格可能不等于“RX数据大小”和上述编辑框之间的空格。

2 个答案:

答案 0 :(得分:2)

你可以用两种方法来实现这个目标,可能会有更多。

手动更改RC文件

  1. 打开解决方案资源管理器
  2. 寻找你的" *。rc"文件
  3. 右键单击它并选择"查看代码"
  4. 使用对话框ID搜索对话框资源,它看起来应该是这样的
    IDD_DIALOG2 DIALOGEX 0, 0, 316, 182
    STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "Dialog"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
        DEFPUSHBUTTON   "OK",IDOK,205,161,50,14
        PUSHBUTTON      "Cancel",IDCANCEL,259,161,50,14
        LTEXT           "RX Data",IDC_STATIC,23,26,27,8
        EDITTEXT        IDC_EDIT1,23,38,148,65,ES_MULTILINE | ES_AUTOHSCROLL
        LTEXT           "size of RX Data",IDC_STATIC,23,119,50,8
        EDITTEXT        IDC_EDIT2,23,131,40,14,ES_AUTOHSCROLL
    END
  5. 在那里你可以看到你创建的所有控件,你可以注意到一个由逗号分隔的4个数字序列,即:23,26,27,8
  6. 23,26,27,8是控件对话框中的坐标
    1. 23是对话框左侧的距离
    2. 26是距对话框顶部的距离
    3. 27是宽度
    4. 9是身高
  7. 所以只需根据需要调整坐标,就可以得到你想要的确切位置
  8. 完成
  9. 使用对话框编辑器(我不喜欢这个)

    1. 选择所有四个控件
    2. 右键单击
    3. 选择左对齐
    4. 仅选择底部的两个
    5. 将它们移到前两个右侧
    6. 仅选择标签,右键单击,对齐顶部
    7. 仅选择编辑控件,右键单击,对齐顶部
    8. 选择右侧的两个控件并将它们移回底部
    9. 完成

答案 1 :(得分:2)

您无法在您的rc文件中进行精确的控制对齐,既不使用UI工具也不能手动执行。原因是:资源文件表示对话框单元中的所有点,在运行时将根据DPI设置转换为像素,但会出现舍入错误。

您可以在OnInitDialog()中以单像素精度调整运行时控件的位置。