- 一个CWebBrowser2包含了几个子窗口,子窗口类名分别是:Shell DocObject View,Shell Embedding,Internet Explorer_Server。如果用CWebBrowser2加载一个swf文件,还会有一个类名为MacromediaFlashPlayerActiveX的子窗口。
- 可以通过给CWebBrowser2发送消息,弹出添加到收藏夹等IE常见功能对话框。具体方法网上一搜就有,大体方法如下:获取
- Internet Explorer_Server窗口指针或者句柄,然后给Internet Explorer_Server窗口发送消息。
-
BOOL CALLBACK EnumChildProc( HWND hwnd,LPARAM lParam)
{
if ( (NULL != hwnd) && ::IsWindow(hwnd) )
{
char szWndClass[256];
ZeroMemory(szWndClass, 256);
int nChars = GetClassName(hwnd, szWndClass, 256);
if ( nChars > 0 )
{
CString csWndClass = szWndClass;
if ( 0 == csWndClass.CompareNoCase("Internet Explorer_Server") )
{
CMyDlg* pDlg = (CMyDlg*)lParam;
if ( NULL != pDlg )
{
pDlg ->m_hwndIEServer = hwnd;
return FALSE;
}
}
}
}
return TRUE;
}
- EnumChildWindows(m_browser.GetSafeHwnd(), EnumChildProc, (LPARAM)this);
-
if ( (NULL != m_hwndIEServer) && ::IsWindow(m_hwndIEServer) )
{
WPARAM wParam = MAKELONG(IDM_ADDFAVORITES, 1);
::SendMessage(m_hwndIEServer, WM_COMMAND, wParam, (LPARAM)m_hwndIEServer);
}