文档介绍:
PC技术辅导:窗口子类化
理论:
假如你曾经在 Windows 环境下编过程序,有时候就会发觉:有一个现成的窗口,几乎有你所须要的全部功能,但还不完全一样〔否那么就没有必要讲这一节了〕D
lpPrevWndFunc = 窗口原来函数的地址. 剩下的四个参数就是发给自定义函数的参数,干脆把它们传给函数 CallWindowProc 就行了。 代码举例:
.386 .model flat,stdcall option casemap:none include \masm32\include\ include \masm32\include\ include \masm32\include\ include \masm32\include\ includelib \masm32\lib\ includelib \masm32\lib\ includelib \masm32\lib\ WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD EditWndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.data ClassName db "SubclassWinClass",0 AppName db "Subclassing Demo",0 EditClass db "EDIT",0 Message db "You pressed Enter in the text box!",0
.data? hInstance HINSTANCE ? hwndEdit dd ? OldWndProc dd ?
.code start: invoke GetModuleHandle, NULL mov hInstance,eax invoke WinMain, hInstance,NULL,NULL, SW_SHOWDEFAULT invoke ExitProcess,eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX LOCAL msg:MSG LOCAL hwnd:HWND mov ,SIZEOF WNDCLASSEX mov , CS_HREDRAW or CS_VREDRAW mov , OFFSET WndProc mov ,NU