CWebBrowser2的使用

  1. 一個CWebBrowser2包含了幾個子窗口,子窗口類名分別是:Shell DocObject View,Shell Embedding,Internet Explorer_Server。如果用CWebBrowser2加載一個swf文件,還會有一個類名爲MacromediaFlashPlayerActiveX的子窗口。
  2. 可以通過給CWebBrowser2發送消息,彈出添加到收藏夾等IE常見功能對話框。具體方法網上一搜就有,大體方法如下:獲取 Internet Explorer_Server窗口指針或者句柄,然後給Internet Explorer_Server窗口發送消息。
  1. 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;
    }
  1.  EnumChildWindows(m_browser.GetSafeHwnd(), EnumChildProc, (LPARAM)this);
  1.  if ( (NULL != m_hwndIEServer) && ::IsWindow(m_hwndIEServer) )
     {
      WPARAM wParam = MAKELONG(IDM_ADDFAVORITES, 1);
      ::SendMessage(m_hwndIEServer, WM_COMMAND, wParam, (LPARAM)m_hwndIEServer);
     }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章