程序附加到第三方程序做子窗口,父窗口关闭后子窗口无法再控制
本帖最后由 nmgwddj 于 2014-3-21 17:46 编辑自己画了个界面,使用_WinAPI_SetParent将自己的程序父窗口设置为第三方程序,当人为点击父窗口x的时候,我自己程序的窗口随即消失,就无法再控制了。比如GUICtrlSetState操作。好像是句柄丢失了。不知道大家可有想法?
我现在唯一的想法就是拦截关闭父窗口的消息,来把我的程序父窗口设置为桌面,再隐藏,这样我就可以再继续操作我自己的窗口了。但是不清楚如何拦截父窗口的关闭消息。 用了child没?
还要用guiswitch 回复 2# plutosherry
您指的child是?
现在我无法判断父窗是否已经被关闭,如果已经被关闭,我附在其他程序上的自己的程序就无法再控制了。 回复 3# nmgwddj
在你的程序里加上检测父窗口 窗体句柄的代码试试 本帖最后由 nmgwddj 于 2014-3-23 11:10 编辑
回复 4# lanfengc
如果发现父窗口句柄已经失效,那么这个时候再处理我的子窗口已经晚了,无论是隐藏它还是把他父窗口设置为桌面都不起作用了。
所以需要在父窗口关闭前拦截父窗口关闭的消息,在这之前就把自己的程序父窗口设置为桌面并隐藏,否则下次就再也显示不出来了。 拦截父窗口关闭的消息就能解决,不过这种流氓行为,就自己研究吧 回复 6# seniors
还请前辈赐教,并非流氓手段,是为公司同事做一款工具方便使用。 回复 7# nmgwddj
注册全局消息钩子. HOOKWM_CLOSE然后分析参数句柄, 如果符合你的要求, 先做你的代码,然后再关闭句柄窗口 回复 8# lanfengc
想了半天也只有这种做法了,按道理来说SetParent以后,父窗口的关闭消息应该会通知子窗口的。
页:
[1]