CMFCPropertyGridProperty用法
2011-05-31 23:52
951 查看
当用到CMFCPropertyGridProperty这个类控件的时候出现了一个很白痴的问题,CMFCPropertyGridProperty更改属性值触发的是哪个事件,如何获得他被更改时的通知?
难道要设置回调?我看了这个类的所有的方法,都没有找到设置回调的函数.因为CMFCPropertyGridProperty这个类控件是在属性页CMFCPropertyGridCtrl中活动,所以我就又看了CMFCPropertyGridCtrl这个的方法,唯一找到一个名字稍微靠谱的就是OnPropertyChanged(字面意思就是属性更改),接着我找到MFC的源文件afxpropertygridctrl.cpp,定位到OnPropertyChanged这个函数,发现源代码中有一行GetOwner()->SendMessage(AFX_WM_PROPERTY_CHANGED, GetDlgCtrlID(), LPARAM(pProp));
难道是发送消息来通知的,赶紧回到项目里面在CPropertiesWnd里面加了个自定义消息AFX_WM_PROPERTY_CHANGED(注意要把下面的(Registered message)勾选上)试了试,当更改值的时候果然收到了通知.于是乎赶紧GOOGLE->AFX_WM_PROPERTY_CHANGED终于在MS的网站找找到了AFX_WM_PROPERTY_CHANGED的用法,消息处理函数的第二个参数lParam就是被更改值的那个控件的指针(CMFCPropertyGridProperty*)(CMFCPropertyGridColorProperty*)..等. 呵呵... 问题终于解决...
难道要设置回调?我看了这个类的所有的方法,都没有找到设置回调的函数.因为CMFCPropertyGridProperty这个类控件是在属性页CMFCPropertyGridCtrl中活动,所以我就又看了CMFCPropertyGridCtrl这个的方法,唯一找到一个名字稍微靠谱的就是OnPropertyChanged(字面意思就是属性更改),接着我找到MFC的源文件afxpropertygridctrl.cpp,定位到OnPropertyChanged这个函数,发现源代码中有一行GetOwner()->SendMessage(AFX_WM_PROPERTY_CHANGED, GetDlgCtrlID(), LPARAM(pProp));
难道是发送消息来通知的,赶紧回到项目里面在CPropertiesWnd里面加了个自定义消息AFX_WM_PROPERTY_CHANGED(注意要把下面的(Registered message)勾选上)试了试,当更改值的时候果然收到了通知.于是乎赶紧GOOGLE->AFX_WM_PROPERTY_CHANGED终于在MS的网站找找到了AFX_WM_PROPERTY_CHANGED的用法,消息处理函数的第二个参数lParam就是被更改值的那个控件的指针(CMFCPropertyGridProperty*)(CMFCPropertyGridColorProperty*)..等. 呵呵... 问题终于解决...
相关文章推荐
- VS08SP1中CMFCPropertyGridCtrl的基本用法
- 使用月历控件CMonthCalCtrl让VC2010的CMFCPropertyGridProperty支持日期选择
- CMFCPropertyGridProperty的使用
- 关于CMFCPropertyGridProperty 选件类的使用
- CMFCPropertyGridProperty获得事件的响应
- 使用CMFCPropertyGridCtrl及CMFCPropertyGridProperty控件的心得体会
- CMFCPropertyGridCtrl,CMFCPropertyGridProperty 响应消息
- VS08SP1中CMFCPropertyGridCtrl的基本用法
- 关于CMFCPropertyGridFontProperty的赋值问题
- CMFCPropertySheet和CMFCPropertyPage增强用法
- Visual C++2010中CMFCPropertySheet的用法
- PropertyGrid 用法,还没明白呢.
- boost::property_tree 基本用法
- Net3.5及以上版本INotifyPropertyChanged接口的友好用法
- json中注解@JsonProperty用法
- CMFCPropertyGridCtrl 使用简记
- __property TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap}; __property的用法
- AudioSessionSetProperty用法
- BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别
- 总结oninput、onchange与onpropertychange事件的用法和区别,onchange