SubClassWindow--------实现窗口子类化的函数
2012-02-10 14:42
253 查看
窗口子类化方法
应用程序为了登记一个窗口类,首先要填写好一个WNDCLASS结构,其中的结构参数lpfnWndProc就是该类窗口函数的地址,接着调用RegisterClass()函数向Windows系统申请登记这个窗口类。这时Windows会为其分配一块内存来存放该类的全部信息,这个内存块称为窗口类内存块。
当应用程序要创建一个属于某一已登记窗口类的窗口时,Windows便为这个窗口分配一块内存,即窗口内存块,用来存放与该窗口有关的专用信息。这些信息一部分来自传递给窗口创建函数CreateWindow()或CreateWindowEx()的参数信息,另一部分则来自所属窗口类的窗口类内存块,其中参数lpfnWndProc便被Windows从窗口类内存块复制到为新创建窗口分配的窗口内存块中。当有消息被发送到这个窗口时,Windows检查该窗口内存块中的窗口函数地址(lpfnWndProc),并调用该地址上的函数来处理这些消息。
所谓窗口子类化,实际上就是改变窗口内存块中的有关参数。由于这种修改只涉及到一个窗口的窗口内存块,因此它不会影响到属于同一窗口类的其它窗口的功能和表现。窗口子类化中最常见的是修改窗口内存块中的窗口函数地址(lpfnWndProc),使其指向一个新的窗口函数,从而改变原窗口函数的处理方法,改进其功能。着可以利用SubClassWindow(hwnd,(wndproc)mywndprc)来实现。
应用程序为了登记一个窗口类,首先要填写好一个WNDCLASS结构,其中的结构参数lpfnWndProc就是该类窗口函数的地址,接着调用RegisterClass()函数向Windows系统申请登记这个窗口类。这时Windows会为其分配一块内存来存放该类的全部信息,这个内存块称为窗口类内存块。
当应用程序要创建一个属于某一已登记窗口类的窗口时,Windows便为这个窗口分配一块内存,即窗口内存块,用来存放与该窗口有关的专用信息。这些信息一部分来自传递给窗口创建函数CreateWindow()或CreateWindowEx()的参数信息,另一部分则来自所属窗口类的窗口类内存块,其中参数lpfnWndProc便被Windows从窗口类内存块复制到为新创建窗口分配的窗口内存块中。当有消息被发送到这个窗口时,Windows检查该窗口内存块中的窗口函数地址(lpfnWndProc),并调用该地址上的函数来处理这些消息。
所谓窗口子类化,实际上就是改变窗口内存块中的有关参数。由于这种修改只涉及到一个窗口的窗口内存块,因此它不会影响到属于同一窗口类的其它窗口的功能和表现。窗口子类化中最常见的是修改窗口内存块中的窗口函数地址(lpfnWndProc),使其指向一个新的窗口函数,从而改变原窗口函数的处理方法,改进其功能。着可以利用SubClassWindow(hwnd,(wndproc)mywndprc)来实现。
相关文章推荐
- 窗口子类化三:SubClassWindow详解
- 子类化(SubclassWindow)技术
- 走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW,MFC消息机制
- GDI+ / PNG 实现半透明窗口,正常情况下没有问题 将系统设置为16位色后UpdateLayeredWindow函数失败,GetLastError返回8(ERROR_NOT_ENOUGH_MEMORY)
- (转)走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制 ---(摘自CSDN论坛)
- 如何子类化(SubclassWindow)窗体
- 子类化(SubclassWindow)窗体
- 完善WTL的分割窗口之SubclassWindow
- (转)走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制
- 如何子类化(SubclassWindow)窗体
- 如何子类化(SubclassWindow)窗体
- 如何子类化(SubclassWindow)窗体
- 如何子类化(SubclassWindow)窗体 .
- SubclassWindow是MFC对子类化的简化
- 如何子类化(SubclassWindow)窗体
- (转)xp下实现窗体透明特效/异形窗口SetLayeredWindowAttributes函数
- 函数window.open实现关闭所有的子窗口
- 走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制
- 走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制
- 走出MFC子类化的迷宫:子类化,SUBCLASSWINDOW ,MFC消息机制 ---(摘自CSDN论坛)