这是我的原创!
用一堆的编辑框下拉框做配置界面,很是繁琐,还要对齐排版……
用这个属性控件 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,看起来不好