這是個人原創!spa
用一堆的編輯框下拉框作配置界面,非常繁瑣,還要對齊排版……
用這個屬性控件 CMFCPropertyGridCtrl 就能夠統一風格了。指針
1 //初始化 2 CMFCPropertyGridCtrl m_propGrid; //屬性控件 3 m_pPropName = new CMFCPropertyGridProperty(_T("名稱"), _T("值"), _T("描述")); //屬性項 4 m_pPropBuy = new CMFCPropertyGridProperty(_T("佔比(%)"), (float)0.1, _T("")); //這裏必須強制指定類型,不然取值會亂 5 m_propGrid.AddProperty(m_pPropBuy); //控件中加入一個屬性項 6 //能夠添加的屬性有4類 7 CMFCPropertyGridProperty 8 CMFCPropertyGridColorProperty 9 CMFCPropertyGridFileProperty 10 CMFCPropertyGridFontProperty 11 12 //添加下拉選項 13 prop->AddOption("yes"); 14 prop->AddOption("no"); 15 prop->AllowEdit(FALSE); 16 17 //取值 18 COleVariant v = m_pPropName->GetValue(); //這回的是這種萬用值,是union實現的 19 CString name; 20 name = v.bstrVal; //字符串要這樣轉 21 float f = m_pPropBuy->GetValue().fltVal; //小數,取值類型要與設置值的類型徹底一致 22 23 //事件通知 24 AFX_WM_PROPERTY_CHANGED //用類嚮導添加這個消息響應,通知來的就是屬性項的指針了 25 26 //缺點 27 對於bool類型,不能顯示爲CheckBox,看起來很差