CMFCPropertyGridCtrl 使用简记
CMFCPropertyGridCtrl vc2008 新增加类使用方法:
创建:CMFCPropertyGridCtrl m_wndPropList ; CRect rectDummy; rectDummy.SetRectEmpty (); if (!m_wndPropList .Create (WS_VISIBLE | WS_CHILD, rectDummy, this, 1)) { TRACE0("Failed to create Properies Grid /n"); return -1; // fail to create } m_wndPropList.EnableHeaderCtrl (FALSE);//标头 m_wndPropList.EnableDescriptionArea ();// m_wndPropList.SetVSDotNetLook ();// 增加项: CMFCPropertyGridProperty* pMDITabsProp = new CMFCPropertyGridProperty (_T("Enable MDI Tabs"), lpszMDITabsStyles [1], _T("Enable or disable either the standard MDI Tabs feature, or MDI Tabbed Groups feature"), idShowMDITabs); pMDITabsProp->AddOption (_T ("None")); pMDITabsProp->AddOption (_T ("MDI Tabs (Standard)")); pMDITabsProp->AddOption (_T ("MDI Tabbed Groups")); m_wndPropList.AddProperty (pMDITabsProp); 得到一项值: CMFCPropertyGridProperty* m_pro = m_wndPropList ->GetProperty( int nIndex ) ; CString str = m_pro ->GetValue(); 回调方法: afx_msg LRESULT OnPropertyChanged (WPARAM,LPARAM); ON_REGISTERED_MESSAGE(AFX_WM_PROPERTY_CHANGED, OnPropertyChanged) LRESULT CWorkspaceBar::OnPropertyChanged (WPARAM,LPARAM lParam) { CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam; BOOL bResetMDIChild = FALSE; switch ((int) pProp->GetData ()) { case :pProp->GetValue(); break ; } } http://qzone.qq.com/blog/4666942-1230445980 |