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);
     }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章