找回密码
 加入
搜索
查看: 3726|回复: 8

[GUI管理] 程序附加到第三方程序做子窗口,父窗口关闭后子窗口无法再控制

  [复制链接]
发表于 2014-3-21 17:41:08 | 显示全部楼层 |阅读模式
本帖最后由 nmgwddj 于 2014-3-21 17:46 编辑

自己画了个界面,使用_WinAPI_SetParent将自己的程序父窗口设置为第三方程序,当人为点击父窗口x的时候,我自己程序的窗口随即消失,就无法再控制了。比如GUICtrlSetState操作。好像是句柄丢失了。不知道大家可有想法?

我现在唯一的想法就是拦截关闭父窗口的消息,来把我的程序父窗口设置为桌面,再隐藏,这样我就可以再继续操作我自己的窗口了。但是不清楚如何拦截父窗口的关闭消息。
发表于 2014-3-21 20:43:04 | 显示全部楼层
用了child没?
还要用guiswitch
 楼主| 发表于 2014-3-23 10:40:34 | 显示全部楼层
回复 2# plutosherry


    您指的child是?
    现在我无法判断父窗是否已经被关闭,如果已经被关闭,我附在其他程序上的自己的程序就无法再控制了。
发表于 2014-3-23 10:42:01 | 显示全部楼层
回复 3# nmgwddj


    在你的程序里加上检测父窗口 窗体句柄的代码试试
 楼主| 发表于 2014-3-23 11:09:28 | 显示全部楼层
本帖最后由 nmgwddj 于 2014-3-23 11:10 编辑

回复 4# lanfengc


    如果发现父窗口句柄已经失效,那么这个时候再处理我的子窗口已经晚了,无论是隐藏它还是把他父窗口设置为桌面都不起作用了。
    所以需要在父窗口关闭前拦截父窗口关闭的消息,在这之前就把自己的程序父窗口设置为桌面并隐藏,否则下次就再也显示不出来了。
发表于 2014-3-24 12:38:00 | 显示全部楼层
拦截父窗口关闭的消息就能解决,不过这种流氓行为,就自己研究吧
 楼主| 发表于 2014-3-24 15:25:18 | 显示全部楼层
回复 6# seniors


    还请前辈赐教,并非流氓手段,是为公司同事做一款工具方便使用。
发表于 2014-3-24 20:27:03 | 显示全部楼层
回复 7# nmgwddj


    注册全局消息钩子. HOOK  WM_CLOSE  然后分析参数句柄, 如果符合你的要求, 先做你的代码,然后再关闭句柄窗口
 楼主| 发表于 2014-3-24 20:44:53 | 显示全部楼层
回复 8# lanfengc


    想了半天也只有这种做法了,按道理来说SetParent以后,父窗口的关闭消息应该会通知子窗口的。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-30 22:55 , Processed in 0.082300 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表