首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

CMFCPropertyGridCtrl 實戰教學:從靜態建立到動態屬性網格完全指南

     編輯:關於C語言

為何選擇 CMFCPropertyGridCtrl?

需將文字標籤與下拉框、顏色選擇器、檔案路徑、字體選擇等異構控件整齊對齊呈現,傳統 Static + ComboBox 排版繁瑣。MFC Feature Pack 提供的 CMFCPropertyGridCtrl 即 Visual Studio「屬性視窗」同款控件,原生支援分組、描述區、標題列、修改標記,開箱即用。

靜態建立步驟

  1. 對話框編輯器拖入控件,設 ID 為 IDC_MFCPROPERTYGRID_TEST
  2. Class Wizard 新增變數 m_propertyGrid
  3. 屬性頁勾選 Enable Description Area、Enable Header、Mark Modified Properties,Description Rows Count 設 2-3 行

首欄寬度調整關鍵技巧

預設首欄極窄,需在 OnInitDialog 中調整 Header Control:

HDITEM item;
item.cxy = 120;           // 目標寬度
item.mask = HDI_WIDTH;
m_propertyGrid.GetHeaderCtrl().SetItem(0, &item);

五大內建屬性類型示範

類別用途關鍵代碼
CMFCPropertyGridProperty一般字串/數值/下拉選項AddOption() + AllowEdit(FALSE)
CMFCPropertyGridColorProperty顏色選擇器建構式傳 RGB(0,111,200)
CMFCPropertyGridFileProperty檔案/目錄選擇對話框建構式指定預設路徑與過濾器
CMFCPropertyGridFontProperty字體選擇對話框建構式傳 LOGFONT

分組管理:建立清晰層級

CMFCPropertyGridProperty* group1 = new CMFCPropertyGridProperty(_T("外觀"));
CMFCPropertyGridProperty* group2 = new CMFCPropertyGridProperty(_T("行為"));

group1->AddSubItem(pPropColor);
group1->AddSubItem(pPropFont);
group2->AddSubItem(pPropFile);
group2->AddSubItem(pPropCombo);

m_propertyGrid.AddProperty(group1);
m_propertyGrid.AddProperty(group2);

動態建立備選方案

CMFCPropertyGridCtrl* pGrid = new CMFCPropertyGridCtrl;
pGrid->Create(WS_CHILD | WS_BORDER | WS_VISIBLE, CRect(400,100,600,200), this, WM_USER+100);
pGrid->EnableHeaderCtrl(TRUE);
pGrid->SetVSDotNetLook();        // VS 風格外觀
pGrid->MarkModifiedProperties(); // 高亮修改項

動態建立適合執行期依配置生成屬性頁,靜態建立適合固定佈局,二者功能等價。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved