【框架-MFC】CMFCPropertyGridCtrl(chenlu1):属性值改变事件的触发与处理

来源:互联网 发布:apache ant 是什么 编辑:程序博客网 时间:2024/06/04 04:46
////////////////////////////////////////////////////////////////////////////Resource.h#define  IDD_MY_DLG 12312314123//////////////////////////////////////////////////////////////////////////class CMyDlg : public CDialog{DECLARE_DYNAMIC(CMyDlg)public:CMyDlg(CWnd* pParent = NULL);virtual ~CMyDlg();enum { IDD = IDD_MY_DLG };protected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持DECLARE_MESSAGE_MAP()public: //virtualCMFCPropertyGridCtrl m_DataGrid;afx_msg LRESULT OnPropertyChanged(WPARAM,LPARAM);};BEGIN_MESSAGE_MAP(CMyDlg, CDialog)ON_REGISTERED_MESSAGE( AFX_WM_PROPERTY_CHANGED, OnPropertyChanged )END_MESSAGE_MAP()//消息处理, lParam是Property属性项, wParam是ctrl的idLRESULT CMyDlg::OnPropertyChanged( WPARAM wParam,LPARAM lParam){CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam;//is the property ctrlif ( (long)wParam == 2 ){}pProp->SetValue((_variant_t)false);pProp->Redraw();int pID = pProp->GetData();CString str = pProp->GetName();if ( str == _T("abc") ){COleVariant var = pProp->GetValue();if ( var.boolVal == VARIANT_TRUE ){// AfxMessageBox(L"failed!");//pProp->SetValue(VARIANT_FALSE);}}return 0;}