由于写程序的需要,今天试着封装了一个窗口,遇到的一个问题是我的hwnd封装在一个类里,但是由于WndProc必须声明为类的静态方法或全局函数,所以存在可能会有类的很多个实例共用一个WndProc的情况,这样我想要修改一个hwnd所在的类中的变量就没办法了,WndProc又是由系统调用的,没有办法传递一个指针什么的过去。
后来花了好长时间思索这问题,心想要是hwnd能附带自定义的信息就好了,哪怕是4个字节。Google+翻以前搜集的电子资料终于找到了SetWindowLong这函数,使用前提是注册窗口类时把cbWndExtra设为12或以上,这样就能用DWL_USER这个参数把自己想要的指针存到窗口的附加信息里了,在WndProc里用GetWindowLong函数可以取出来。
赞M$一个。
posted on 2006-09-13 23:52 一个咸蛋的唠叨 阅读(8740)
评论(15) 编辑 收藏