SetProp 和 GetProp
来源:互联网 发布:淘宝网狗窝 编辑:程序博客网 时间:2024/05/11 01:14
今天在对ComboBox进行重绘的时候,由于ComboBox是通过资源添加到,而我要实现的是用SDK方式实现一个类,重绘ComboBox的时候,只要定义一个类,就可以用类对象对添加到ComboBox进行操作了。但开始的时候,消息响应函数不是设置成全局,就要设置成静态的,所以我的类中的ComboBox句柄就必须写成静态的了,从而,如果我有多个ComboBox的时候,就要出问题了。后来找到了SetProp函数和GetProp函数后,终于解决了问题了。方法如下:
定义一个全局的函数(MsgSender),用它来分发所有的窗口消息,而真正的处理消息的不声明成静态,而通过类指针查找。而要区分到底是那个窗口的消息的话就要用到SetProp和GetProp了
首先,在要设置消息响应函数前调用SetProp(hwnd,ATOM_XX,(HANDLE)this);hwnd是要设置消息响应函数的窗口句柄,
ATOM_XX是一个宏(具体可以查看SetProp函数),this 就是我们的当前类了(此处假设是CWnd)。
在消息处理函数中,只要取出该类指针即可操作了,示例代码如下:
设置窗口处理函数:
#defint WND_OBJ "@"
LRESULT CALLBACK MsgSender(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);//分发消息函数
class CWnd
{...
....
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);//真正处理消息函数
};
SetProp(hwnd1,WND_OBJ,(HANDLE)this);//设置窗口1
SetWindowLong(hwnd1,GWL_WNDPROC,MsgSender);
SetProp(hwnd2,WND_OBJ,(HANDLE)this);//设置窗口2
SetWindowLong(hwnd2,GWL_WNDPROC,MsgSender);
LRESULT CALLBACK MsgSender(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
CWnd* pWnd = NULL;
pWnd = (CWnd*)GetProp(hwnd,WND_OBJ);//从句柄去取得类指针
pWnd->WndProc(hwnd,message,wParam,lParam);// 处理消息
........
........
}
哈哈 ,太棒了。。。。。
- SetProp 和 GetProp
- GetProp和SetProp用法!
- GetProp和SetProp的用法
- GetProp和SetProp的用法
- GetProp和SetProp的用法
- android getprop setprop
- getprop & setprop & watchprop
- getprop,setprop,watchprops
- 利用SetProp和GetProp来查找特定窗口句柄
- android-------init.rc----setprop---getprop---
- SetProp()、GetProp()、RemoveProp() API接口
- Android 中使用 getprop、watchprops 和 setprop 命令查看和更改系统属性值
- GetProp和SetProp不使用字符串设置Window Props的简便方法
- android properties分析(1) Properties的设置和获取接口 getprop setprop SystemProperties.get SystemProperties.set
- SetProp和GetProp的使用--对windows窗口过程函数的封装
- java语句调用getprop和setprop命令来获得prop中的数据
- Android启动默认是横屏或者竖屏和setprop,getprop,watchprops命令的使用
- android linux getprop setprop wathcprop的使用
- 微软官方的Visual Studio 控件命名规范
- Java Spring 入门笔记 - 正在写
- zoundry
- 日期函数精解示例
- hdoj 1003
- SetProp 和 GetProp
- c++服务端程序基本结构
- 小小的测试了一下Ycnd 3D
- json格式字符串到json对象转化
- 后天补考,可是只想看电脑书,看不进物理。。。
- Beginning Java AWT and Swing in NetBeans
- 在RFT中如何通过脚本获取已添加到某个脚本中的测试对象?
- OA
- 传智播客——javaWEB开发基础知识