2015-11-04 75 views
1

如何排列MFC对话框上的控件之间的空间?MFC MFC框上的控制排列

enter image description here

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

+0

你必须手工完成。 AFAIK无法通过对话框编辑器自动执行此操作。您必须找到第一个编辑框的y距离“RX Data”,然后手动放置第二个编辑框,该距离等于y“低于RX数据大小”的距离。所选项目的位置显示在Vusial Studio的状态栏中。 –

+0

添加您正在使用的视觉演播室版本的标签 – Robson

+0

visual studio 2012 –

回答

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. 所以只是调整坐标,如你所愿,你会得到的确切位置,你想

使用对话框编辑器(我不喜欢这个)

  1. 选择所有四个控件
  2. 右击
  3. 选择左对齐
  4. 只选择底部的两个
  5. 举动他们在前两个的右侧
  6. 只选择标签,右键单击,对齐顶部
  7. 只选择编辑控件,点击右键,对齐顶部
  8. 选择是对的两个控件,并将其移动回底部
2

你不能做一个精确的控制比对中您的rc文件,无论是使用UI工具还是手动。原因是:资源文件表示对话框单元中的所有点,在运行时将根据DPI设置将其转换为像素,但会受到舍入错误的影响。

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