您的位置:首页 > 其它

SubClassWindow--------实现窗口子类化的函数

2012-02-10 14:42 253 查看
 窗口子类化方法

  应用程序为了登记一个窗口类,首先要填写好一个WNDCLASS结构,其中的结构参数lpfnWndProc就是该类窗口函数的地址,接着调用RegisterClass()函数向Windows系统申请登记这个窗口类。这时Windows会为其分配一块内存来存放该类的全部信息,这个内存块称为窗口类内存块。

  当应用程序要创建一个属于某一已登记窗口类的窗口时,Windows便为这个窗口分配一块内存,即窗口内存块,用来存放与该窗口有关的专用信息。这些信息一部分来自传递给窗口创建函数CreateWindow()或CreateWindowEx()的参数信息,另一部分则来自所属窗口类的窗口类内存块,其中参数lpfnWndProc便被Windows从窗口类内存块复制到为新创建窗口分配的窗口内存块中。当有消息被发送到这个窗口时,Windows检查该窗口内存块中的窗口函数地址(lpfnWndProc),并调用该地址上的函数来处理这些消息。

  所谓窗口子类化,实际上就是改变窗口内存块中的有关参数。由于这种修改只涉及到一个窗口的窗口内存块,因此它不会影响到属于同一窗口类的其它窗口的功能和表现。窗口子类化中最常见的是修改窗口内存块中的窗口函数地址(lpfnWndProc),使其指向一个新的窗口函数,从而改变原窗口函数的处理方法,改进其功能。着可以利用SubClassWindow(hwnd,(wndproc)mywndprc)来实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows