资源描述:
《CMFCPropertyGridCtrl的基本用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VS08SP1中CMFCPropertyGridCtrl的基本用法收藏在DLG中的基本应用。首先在Cxxdlg.h文件中加入public: CMFCPropertyGridCtrl m_MFCPGCtrl; CMFCPropertyGridProperty*pGroup1; CMFCPropertyGridProperty*pGroup2;然后Cxxdlg.cpp中的OnInitDialog()中CRectrc; GetClientRect(rc); rc.bottom-=50; rc.left+=50; rc.rig
2、ht-=50; m_MFCPGCtrl.Create(WS_CHILD
3、WS_VISIBLE
4、WS_TABSTOP
5、WS_BORDER,rc,this,IDC_CMFCPGCTRL); m_MFCPGCtrl.EnableHeaderCtrl(true,_T("参数"),_T("值")); m_MFCPGCtrl.EnableDescriptionArea(); m_MFCPGCtrl.SetVSDotNetLook(); m_MFCPGCtrl.MarkModifiedProperties(); m_MFCPGCtr
6、l.SetAlphabeticMode(false); m_MFCPGCtrl.SetShowDragContext();pGroup1=newCMFCPropertyGridProperty(_T("参数组1")); pGroup2=newCMFCPropertyGridProperty(_T("参数组2")); pGroup3=newCMFCPropertyGridProperty(_T("参数组3")); pGroup1->AddSubItem(newCMFCPropertyGridProperty(_T("参
7、数1"),_T("2.5"),_T("这是参数1的说明"))); pGroup1->AddSubItem(newCMFCPropertyGridProperty(_T("参数2"),_T("3.5"),_T("这是参数2的说明"))); pGroup2->AddSubItem(newCMFCPropertyGridProperty(_T("参数3"),_T("4.5"),_T("这是参数3的说明"))); pGroup2->AddSubItem(newCMFCPropertyGridProperty(_T("参数4")
8、,_T("5.5"),_T("这是参数4的说明"))); pGroup3->AddSubItem(newCMFCPropertyGridFileProperty(_T("选择文件"),TRUE,_T("D:\defaule.csv"),_T("csv"),NULL,_T("csvFiles(*.csv)
9、*.csv
10、AllFiles(*.*)
11、*.*
12、
13、"),_T("选择csv文件")));//选择文件按钮 m_MFCPGCtrl.AddProperty(pGroup1); m_MFCPGCtrl.AddProper
14、ty(pGroup2); m_MFCPGCtrl.AddProperty(pGroup3); m_MFCPGCtrl.ExpandAll();就ok了 下面说下通过消息活动输入值和输入的位置.h中加入afx_msgLRESULTOnPropertyChanged(WPARAM,LPARAM);.cpp中加入红色BEGIN_MESSAGE_MAP(CCMFCPGCtrlDlg,CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_M
15、SG_MAP ON_REGISTERED_MESSAGE(AFX_WM_PROPERTY_CHANGED,OnPropertyChanged)END_MESSAGE_MAP()然后添加函数LRESULTCCMFCPGCtrlDlg::OnPropertyChanged(WPARAM,LPARAMlParam){ CMFCPropertyGridProperty*pProp=(CMFCPropertyGridProperty*)lParam; inti=(int)pProp->GetData(); CStrings=
16、pProp->GetName(); //被改变的参数名 COleVariantt=pProp->GetValue(); //改变之后的值 t=pProp->GetOriginalValue(); //改变之前的值 CStringd; d=t.bstrVal; //从COleVariant到CString retur