CMFCPropertyGridCtrl,CMFCPropertyGridProperty 响应消息
来源:互联网 发布:php rides 缓存 编辑:程序博客网 时间:2024/05/29 03:51
一 类的继承关系
class CMFCPropertyGridCtrl : publicCWnd
class CMFCPropertyGridProperty : public CObject
查看CMFCPropertyGridCtrl的源码
//Overrides
virtualvoidOnPropertyChanged(CMFCPropertyGridProperty* pProp)const;
voidCMFCPropertyGridCtrl::OnPropertyChanged(CMFCPropertyGridProperty* pProp)const
{
ASSERT_VALID(this);
ASSERT_VALID(pProp);
pProp->SetModifiedFlag();
GetOwner()->SendMessage(AFX_WM_PROPERTY_CHANGED,GetDlgCtrlID(), LPARAM(pProp));
}
这里我们可以重写OnPropertyChanged
二新建一个基于对话框的项目,对话框类是CDlgXXX
头文件增加
afx_msg LRESULTOnPropertyChanged(__in WPARAM wparam, __in LPARAM lparam );
消息映射的地方增加
ON_REGISTERED_MESSAGE(AFX_WM_PROPERTY_CHANGED, &CDlgXXX:OnPropertyChanged )
实现文件增加
LRESULT CDlgXXX::OnPropertyChanged(__in WPARAM wparam, __in LPARAM lparam )
{
return0;
}
三区分操作PropertyGrid某个Item的方法
一个ProtertyGrid可以多个Property,一个Property可以有多个Item,一个Item可以是Edit,可以是ComboBox,因为没有ID,要人为的区分。
方法如下
在对话框的头文件中定义
CMFCPropertyGridCtrl m_PropertyGrid_ctlMain;
CMFCPropertyGridProperty* m_pProperty;
CMFCPropertyGridProperty的构造函数
CMFCPropertyGridProperty(const CString& strName,constCOleVariant& varValue, LPCTSTR lpszDescr = NULL, DWORD_PTR dwData = 0,
LPCTSTR lpszEditMask = NULL,LPCTSTR lpszEditTemplate = NULL, LPCTSTR lpszValidChars = NULL);
第四个参数DWORD_PTRdwData,使用这个参数作为区分操作了哪个控件
m_pProperty1=new CMFCPropertyGridProperty(_T("标题"));
m_pProperty1->AddSubItem(new CMFCPropertyGridProperty(_T("属性"), (COleVariant) _T("值"), _T(""),1));
最后一个参数值为1,这个1就相当于一个控件的ID。
LRESULT CDlgXXX::OnPropertyChanged(__in WPARAM wparam, __in LPARAM lparam )
{
CMFCPropertyGridProperty* pProp = reinterpret_cast<CMFCPropertyGridProperty*>(lparam);
intnID=pProp->GetData();
if (1==nID)
{
//自定义的操作
}
return 0;
}
注意
如果使用的字符集非Unicode,MFC的使用不是在静态库中使用MFC库,如果要使用AfxMessageBox提示内容,之前要加SetFocus(),如果不加,当CMFCPropertyGridProperty中的某个Item是一个ComboBox类型的时就会出错。
转自:http://blog.csdn.net/flyfish1986/article/details/8885640
- CMFCPropertyGridCtrl,CMFCPropertyGridProperty 响应消息
- CMFCPropertyGridCtrl响应消息
- CMFCPropertyGridCtrl响应消息
- CMFCPropertyGridCtrl响应消息
- 使用CMFCPropertyGridCtrl及CMFCPropertyGridProperty控件的心得体会
- CMFCPropertyGridProperty获得事件的响应
- CMFCPropertyGridCtrl
- CMFCPropertyGridCtrl
- 如何添加CMFCPropertyGridCtrl的属性改变响应事件 ?
- 消息响应
- MFC消息响应机制
- 菜单消息响应
- CStatic响应消息
- MFC消息响应机制
- 手动添加消息响应
- C#消息响应
- MFC消息响应机制
- MFC消息响应路线
- FastJSON使用案例(fastjson-1.1.28.jar)
- 北美第二周
- 备不需:简单git用法
- P202 10
- About Longest Palindromic Substring
- CMFCPropertyGridCtrl,CMFCPropertyGridProperty 响应消息
- 关于wcf添加服务引用失败,客户端与服务端不一致,415错误码
- C++中的继承与多态
- OpenCV直方图计算匹配方法详解calcHist
- 第11周-继承与派生-项目3-职员有薪水啦
- 15第十一周项目三——点类派生直线类
- gem install rails 安装失败
- php 验证码
- linux应用开发-内存共享