- 一個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);
}