2015-11-04 152 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()中以單像素精度調整控件的位置。