摘要:
某些时候我们需要改变窗口的默认行为,就需要改变窗口过程(子类化窗口),总结了以下三种方法,欢迎讨论。1)最简单的方法,可以通过传递GWL_WNDPROC调用SetWindowLong来改变窗口过程,可是这个函数还需要窗口句柄作为参数,而句柄只有在窗口创建成功后才合法,所以这种做法只能当不用改变默认WM_CREATE行为(以及一些窗口创建过程中的动作)的时候才适用。2)窗口过程是在窗口类注册时确定的,要改变窗口函数就需要注册一个新类(参考DuiLib中的Edit空控件实现):首先调用系统API获得窗口类的详细信息,结果放在lpwcx指向的内存区中。BOOL WINAPI GetClassInfo 阅读全文