用webbrowser控件浏览网页时,常弹出新的网页窗口,若不做任何控制的话,会在默认浏览器(一般是IE)中打开,这样就在新的窗口打开了,原程序就很难控制了,且存在webbrowser控件和IE的session共享问题。解决方法是让新打开的网页在自己的对话框中打开,具体步骤如下:
一、新建基于对话框的MFC程序,对话框ID为IDD_SHELL_DIALOG,添加Microsoft Web Browser控件(ID为IDC_EXPLORER),并利用向导生成IDC_EXPLORER的控件型变量m_webBrowser,Navigate()就可以连接要浏览的网页了。
二、要为弹出的网页也新建一个对话框(ID为IDD_DIALOG_NEW),利用向导添加类生成CNewDlg类( : public CDialog)。
并在该对话框中添加Microsoft Web Browser控件(ID为IDC_EXPLORER_NEW),
利用向导生成IDC_EXPLORER的控件型变量m_newwebBrowser,
三、在原对话框(IDD_SHELL_DIALOG)中添加webbrowser控件(IDC_EXPLORER)的NewWindow3()事件,当事件触发时,显示新对话框,并用新的对话框中的webbrowser控件(IDC_EXPLORER_NEW)打开URL地址就行了

本文介绍了如何在使用MFC和WebBrowser控件时,处理新窗口弹出的问题。通过在原对话框和新对话框中添加NewWindow3事件处理,确保新窗口在自己的对话框中打开,从而实现对新网页的控制,解决了session共享问题。
最低0.47元/天 解锁文章
2535





