描述:
大家好,我用ATL写了一个控件,然后想在控件中实现关闭IE的功能,请问这样做可能吗?请问要怎么才能实现呢??
我自己的代码,
SendMessage( FindWindow(NULL,"1111") , WM_DESTROY,0,0);
这个1111是IE的标题。但是我上面的代码,却没有办法正确的关闭IE,
请大虾们指教!
谢谢
解决方案1:
回复人: IFoo() //莫名接口:) ( ) 信誉:100 2004-05-14 17:06:00 得分:0
http://www.csdn.net/Develop/read_article.asp?id=10175
得到iwebbrowser2接口后可用gethwnd得到句柄,发wm_close消息给该句柄应该可以的
直接调用iwebbrowser2::Quit应该也可以,没试过.
=======================
看来三个绿帽的分量不够,呵呵
回复人: supercwj(HONEY) ( ) 信誉:100 2004-05-14 17:04:00 得分:0
FindWindow函数的第二个参数要怎么填写,才能找到我指定的网页.
也就是,跟网页中的那一项参数相同?是不是title??
==============
如果你新开一个IE并不导航都任何网页,那么标题应该是"about:blank - Microsoft Internet Explorer"
但是有的机器可能通过改注册表,把后面的Microsoft Internet Explorer改为别的值,所以你这个方法并不可靠
http://www.csdn.net/Develop/read_article.asp?id=10175
得到iwebbrowser2接口后可用gethwnd得到句柄,发wm_close消息给该句柄应该可以的
直接调用iwebbrowser2::Quit应该也可以,没试过.
问题已在VC中解答。
另外,不能发送WM_CLOSE消息,这个消息是最小化窗口,而不是关闭窗口。
::SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0)
CWnd *wnd = FindWindow(NULL, "about:blank - Microsoft Internet Explorer");
::PostMessage(*wnd, WM_CLOSE, 0, 0);
gz