#pragma once #include "stdafx.h" #include "exptcef.h" #include "webview/Cef3WebVWndHandler.h" #include "webview/Cef3MainContext.h" #include namespace SOUI { #define WM_WEBSITE_SIZE 100 class DLL_EXPORT_IMPORT SWebViewWnd : public CSimpleWnd, public browser::IBrowserClient { public: SWebViewWnd(void); ~SWebViewWnd(void); public: browser::CCef3WebVWndHandler *webview_handler_; SStringT m_strUrl; SStringT m_strTitle; public: // ʵÏÖµÄ½Ó¿Ú IBrowserClient virtual HWND getWindowHandle(); virtual CefClient *getClient(); // ÉèÖõ÷ÊÔ¹¤¾ß void SetDevTools(bool devtools); // ------------------------------------------------------------------------------ // // methods for user // // ------------------------------------------------------------------------------ BOOL LoadURL(const SStringT& url); BOOL LoadHtml(const SStringT& strHtml); SStringW GetTitle(); SStringW GetURL(); void ExecJavaScript(const SStringT& js); BOOL CanGoBack(); void GoBack(); BOOL CanGoForward(); void GoForward(); BOOL IsLoading(); void Reload(); void StopLoad(); BOOL Open(SStringT strUrl); void Close(); void GetWebViewSource(std::function &&callback); // µ¯³ö´°£¬ÎªÁ˽â¾öcefµÄbug LRESULT OnOpenFileDialog(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled); LRESULT OnWebUrlDialog(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled); public: void ReDraw(); public: int OnCreate(LPCREATESTRUCT lpCreateStruct); BOOL OnInitDialog(HWND wndFocus,LPARAM lInitParam); BOOL OnEraseBkgnd(HDC dc); void OnClose(); void OnSize(UINT nType, CSize size); void OnPaint(IRenderTarget *pRT); void OnTimer(UINT_PTR nIDEvent); //HostWndÕæÊµ´°¿ÚÏûÏ¢´¦Àí BEGIN_MSG_MAP_EX(SWebViewWnd) MSG_WM_PAINT_EX(OnPaint) MSG_WM_CREATE(OnCreate) MSG_WM_INITDIALOG(OnInitDialog) MSG_WM_ERASEBKGND(OnEraseBkgnd) MSG_WM_CLOSE(OnClose) MSG_WM_SIZE(OnSize) CHAIN_MSG_MAP(CSimpleWnd) MSG_WM_TIMER_EX(OnTimer) MESSAGE_HANDLER(WM_OPENFILEDIALOG,OnOpenFileDialog) // µ¯³ö´°£¬ÎªÁ˽â¾öcefµÄbug MESSAGE_HANDLER(WM_WEBURLDIALOG,OnWebUrlDialog) REFLECT_NOTIFICATIONS_EX(); END_MSG_MAP() //private: // SOUI::CRect m_rc; // ³õʼ»¯rc //public: //void SetInitRc( SOUI::CRect &rc ); }; }