拦截外部程序窗口关闭事件

泊客天涯 2014-03-22 10:30:15
我把自己的窗口setparent到外部程序窗口内,可是一旦外部(新父窗体)关闭,我的vb就崩溃了怎么拦截外部窗口关闭事件,及时卸载我自己的子窗体
...全文
1030 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
PctGL 2014-08-29
  • 打赏
  • 举报
回复
没试过,估计难度太大,主窗口通常直接销毁子控件而不考虑子控件是否允许销毁 setparent之后,主窗口也不会把你的窗口当正常窗口 可行的方法是注入一个子类化过程,其它方法还得再试试
泊客天涯 2014-04-30
  • 打赏
  • 举报
回复
没有搞定,放弃了,好像权限不够
  • 打赏
  • 举报
回复
搞定没有?啊,看看你的
startbin 2014-03-29
  • 打赏
  • 举报
回复
首先子类化自己的窗口 看看能不能拦截到相关的消息 如果不行可以注册一个shellwindow的hook 窗口的创建销毁你都能提前收到消息来做处理
泊客天涯 2014-03-25
  • 打赏
  • 举报
回复
为什么用setparent把我的窗体设为外部程序的子窗体后当外部窗体关闭后我的窗体句柄会变化? 窗体标题文字也变成乱码 有时崩溃有时能坚持一段时间 如何避免这种现象 或者是一旦外部窗体关闭我自己的窗体也退出(不是崩溃),这种效果如何实现
threenewbee 2014-03-24
  • 打赏
  • 举报
回复
这里涉及到跨进程拦截消息的问题。因为不同的进程不能直接传函数指针,所以必须注入代码,这个对于VB比较困难。需要用VC来写。 参考:http://www.codeproject.com/Articles/33459/Spying-Window-Messages-from-the-Inside 只要你能处理WM_EXIT消息,就可以了。
泊客天涯 2014-03-24
  • 打赏
  • 举报
回复
有变通的方法吗 另外setparent后 父窗体关闭后子窗体的句柄和标题都发生了变化,这是为什么

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧