自各儿分配的窗口中有必要用DefWindowProc么
自己分配的窗口中有必要用DefWindowProc么?
通过AllocateHWnd分配一个窗口句柄
看到网上的代码都是在其中对于不关心的消息用DefWindowProc来处理
我以为AllocateHWnd中指定的处理过程就是该窗口的默认处理过程
再调用DefWindowProc,那到底是给哪个过程处理了?是不是多余的?
------解决方案--------------------
function AllocateHWnd(Method: TWndMethod): HWND;
....
if Assigned(Method) then
SetWindowLong(Result, GWL_WNDPROC, Longint(MakeObjectInstance(Method)));
指定了该句柄响应消息的过程是Method,这里是替换关系,因此Method中未处理的消息要交给DefWindowProc处理,以确保所有消息都处理过.
------解决方案--------------------
也就是说如果不指定Method,那么默认过程就是DefWindowProc
通过AllocateHWnd分配一个窗口句柄
看到网上的代码都是在其中对于不关心的消息用DefWindowProc来处理
我以为AllocateHWnd中指定的处理过程就是该窗口的默认处理过程
再调用DefWindowProc,那到底是给哪个过程处理了?是不是多余的?
------解决方案--------------------
function AllocateHWnd(Method: TWndMethod): HWND;
....
if Assigned(Method) then
SetWindowLong(Result, GWL_WNDPROC, Longint(MakeObjectInstance(Method)));
指定了该句柄响应消息的过程是Method,这里是替换关系,因此Method中未处理的消息要交给DefWindowProc处理,以确保所有消息都处理过.
------解决方案--------------------
也就是说如果不指定Method,那么默认过程就是DefWindowProc