| ///////////////////// #undef __urlmon_h__ #include <urlmon.h> #undef _SHLOBJ_H_ #include <shlobj.h> #undef _WINNETWK_ #include <winnetwk.h> #undef __AFXHTML_H__ #include "afxhtml.h" |
| public: IWebBrowser2 *m_pBrowser; CWnd m_wndBrowser; ////IWebBrowser2 的容器 void Navigate(CString); ///调用IWebBrowser2的Navigate接口 |
| CIEGIFView:: CIEGIFView () { m_pBrowser = NULL; } |
| void CIEGIFView::Navigate(CString strURL) { COleVariant empty; BSTR bstrURL = strURL.AllocSysString(); m_pBrowser->Navigate (bstrURL, COleVariant((long) 0, VT_I4), empty, empty, empty); } |
| ///响应WM_CREATE int CIEGIFView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; //////////////////////////////////////////////////// RECT rectClient; GetClientRect(&rectClient); ///在客户端整个区域显示GIF ///创建控件 if (! m_wndBrowser.CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD,rectClient, this, AFX_IDW_PANE_FIRST)) { DestroyWindow(); return FALSE; } ///得到指针 LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown(); HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowser); if (! SUCCEEDED(hr)) { m_pBrowser = NULL; m_wndBrowser.DestroyWindow(); DestroyWindow(); return FALSE; } return 0; } ///响应命令ON_COMMAND(ID_OPENGIF, OnOpenGIF) ///随便用一个按钮,或菜单项。ID为ID_OPENGIF void CIEGIFView::OnOpenGIF() { CFileDialog dlg(TRUE, NULL, NULL); if(dlg.DoModal() == IDCANCEL) { return; } Navigate(dlg.GetPathName()); } |
![]() 图1 显示GIF截图 |