//
//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: //virtual
CMFCPropertyGridCtrl 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的id
LRESULT CMyDlg::OnPropertyChanged( WPARAM wParam,LPARAM lParam)
{
CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam;
//is the property ctrl
if ( (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;
}
【框架-MFC】CMFCPropertyGridCtrl(chenlu1):属性值改变事件的触发与处理
最新推荐文章于 2023-02-17 16:28:08 发布