ilikework的挪亚方舟

年月悄悄远走了 悄悄得彷似午夜晚风飘

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  9篇文章 :: 9篇收藏:: 2篇评论:: 0个Trackbacks

公告

文章

收藏

相册

存档


正在读取评论……


今天SetWindowLong这函数帮了我大忙了

由于写程序的需要,今天试着封装了一个窗口,遇到的一个问题是我的hwnd封装在一个类里,但是由于WndProc必须声明为类的静态方法或全局函数,所以存在可能会有类的很多个实例共用一个WndProc的情况,这样我想要修改一个hwnd所在的类中的变量就没办法了,WndProc又是由系统调用的,没有办法传递一个指针什么的过去。

后来花了好长时间思索这问题,心想要是hwnd能附带自定义的信息就好了,哪怕是4个字节。Google+翻以前搜集的电子资料终于找到了SetWindowLong这函数,使用前提是注册窗口类时把cbWndExtra设为12或以上,这样就能用DWL_USER这个参数把自己想要的指针存到窗口的附加信息里了,在WndProc里用GetWindowLong函数可以取出来。

赞M$一个。



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1037255


[点击此处收藏本文]  发表于2006年09月14日 10:15 AM




正在读取评论……

发表评论

大名:
网址:
验证码
评论