MFC的CPropertiesWnd的用法之响应

来源:互联网 发布:淘宝双十一活动要求 编辑:程序博客网 时间:2024/04/29 23:27

在一个复杂的目标工程中,目标对象种类繁多CPropertiesWnd如何应付不同的对象属性的更改

我想到的方法是建立一个基类,目标对象处理属性的部分派生自这个基类,这个基类对外提供一个统一的接口.然后派生类实现这个接口的操作.这样就解决了不同对象的属性更改处理问题.

class CWhoAmI
{
public:
 CWhoAmI(void);
 virtual ~CWhoAmI(void);

//下面这个接口用于实现统一的操作
 virtual void WhatCanIDoForYou(void *p);
};

class CPropertiesWnd里处理如下:

CPropertiesWnd::CWhoAmI* 我是谁;

afx_msg LRESULT OnPropertyChanged(__in WPARAM wparam, __in LPARAM lparam );


ON_REGISTERED_MESSAGE( AFX_WM_PROPERTY_CHANGED, OnPropertyChanged )

LRESULT CPropertiesWnd::OnPropertyChanged(__in WPARAM wparam, __in LPARAM lparam )
{

//

 CMFCPropertyGridProperty * pProperty = ( CMFCPropertyGridProperty * ) lparam;

 if(我是谁)我是谁->WhatCanIDoForYou((void*)lparam);
 return TRUE;
}

使用时变量'我是谁' 填写派生类的实例的指针;


0 0
原创粉丝点击