读书人

VC webbrowser 的关闭,该如何处理

发布时间: 2012-04-10 21:03:56 作者: rapoo

VC webbrowser 的关闭
webbrowser中写了JS退出,但只是退出webbrowser网页,并没有实际上的退出程序
如何在webbrowser调用windows.close()时,同时关闭VC写的程序,完全的退出。

[解决办法]
嵌入的一个浏览器控件? C++里写一个退出的函数, 导出给 js 调用.
[解决办法]
退出webbrowser网页,并没有实际上的退出程序

要关闭VC写的程序,因为你的程序显然是加载了一个浏览器控件

退出程序很简单 PostQuitMessage()

也可以调用 默认的窗口 OnClose()
[解决办法]
上面参考实现中DOC_ID应改为WB_ID
[解决办法]

探讨

引用:
你可以在你webbrowser类的BEGIN_SINK_MAP加入对DISPID_QUIT事件的处理就OK了,具体实现参考如下:
BEGIN_SINK_MAP( CWebBrowser )
SINK_ENTRY_EX(DOC_ID,DIID_HTMLDocumentEvents2, DISPID_QUIT, onwebclose)
END_SINK_MAP()
……

[解决办法]
你要还是截不到这个事件消息的话,就用最原始的方法吧,起个定时器,定时判断该webbrowser是否还存在,不存在就用OnClose()退出程序
[解决办法]
处理浏览器的 BeforeNavigate2 事件, 然后在里面判断 url 的值是否等于 xxx://quit 是的话就退出程序. 然后在 js 的代码里把 windows.close() 替换成 location.href="xxx://quit";

读书人网 >C++

热点推荐