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

//
//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;
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值