我自己做了一个DBGrid控件,需要在其所在的窗体显示(show)和关闭的时候(close)处理一些事情,
所以我在里面使用WM_CLOSE和WM_SHOWWINDOW时事件来截获消息,可是结果是DBGrid里面的两个方
法根本没有执行!
请问是怎么回事?
该如何处理?
这是WM_CLOSE的声明:
procedure WMCLOSE(var message: TWMClose);message WM_CLOSE;
所以我在里面使用WM_CLOSE和WM_SHOWWINDOW时事件来截获消息,可是结果是DBGrid里面的两个方
法根本没有执行!
请问是怎么回事?
该如何处理?
这是WM_CLOSE的声明:
procedure WMCLOSE(var message: TWMClose);message WM_CLOSE;
如楼上所说,怀疑楼主的这个思路是否有一点点问题?
我只不过是要处理DBGrid关心的问题而已,不是窗体关心的问题
改为
procedure On_WmClose(var message: TMessage);message WM_CLOSE;
newProc := MakeObjectInstance(OwnerWndProc);
oldProc := Pointer(SetWindowLong(TWinControl(aOwner).handle, GWL_WNDPROC, integer(newProc)));
可以搜索更详细的例子