int CDuiWkeWebkit::OnCreate( void * ) { m_pWebView = wkeCreateWebView(); if(!m_pWebView) return 1; m_pWebView->setBufHandler(this); m_pWebView->loadURL(m_strUrl); SetDuiTimer(TM_TICKER,10); return 0; }
// 创建wke控件 bool CDuiWkeView::CreateControl() { if(m_bCreating) { return false; } m_bCreated = false; m_bCreating = true; // 设置wke事件回调函数 m_wkeHander.onTitleChanged = onTitleChanged; m_wkeHander.onURLChanged = onURLChanged; // 创建wke视图,并加载url或html内容 m_pWebView = wkeCreateWebView(); m_pWebView->setTransparent(m_bTransparent); m_pWebView->setClientHandler(&m_wkeHander); m_pWebView->setBufHandler(this); if(!m_strUrl.IsEmpty()) { Navigate(m_strUrl); }else if(!m_strHtml.IsEmpty()) { loadHTML(m_strHtml); } // 注册窗口类 RegisterWindowClass(); // 创建用于显示wke视图的窗口 HWND hWnd = ::CreateWindow(wkeWebViewClassName, 0, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, 0, 0, 0, 0, m_hWnd, 0, DuiSystem::Instance()->GetInstance(), this); // 设置窗口句柄 if(hWnd && ::IsWindow(hWnd)) { ReleaseControl(); m_hwndHost = hWnd; } // 初始化wke渲染对象,将渲染对象关联到视图窗口 m_render.init(m_hwndHost); m_bCreated = true; m_bCreating = false; return true; }
WebWindow::WebWindow(const CEGUI::String& type, const CEGUI::String& name) :CEGUI::Window(type, name) ,d_webViewTexture(NULL) { d_wantsMultiClicks = false; d_webGeometry = new WebGeometryBuffer(this); d_webView = wkeCreateWebView(); d_next = s_first; s_first = this; }
int main(int argc, char** argv) { wkeWebView webView; const char* url; wchar_t filename[1024]; void* pixels; int w, h; printf(wkeVersionString()); wkeInit(); webView = wkeCreateWebView(); wkeResize(webView, 1024, 768); url = argc >= 2 ? argv[1] : "http://www.google.com"; printf("loading url %s ...\n", url); wkeLoadURL(webView, url); while (1) { wkeUpdate(); if (wkeIsLoadComplete(webView)) break; Sleep(10); } /*hidden scrollbar*/ wkeRunJS(webView, "document.body.style.overflow='hidden'"); w = wkeContentsWidth(webView); h = wkeContentsHeight(webView); wkeResize(webView, w, h); pixels = malloc(w*h*4); wkePaint(webView, pixels, 0); //save bitmap swprintf(filename, 1024, L"%s.bmp", wkeTitleW(webView)); convertFilename(filename); wprintf(L"%s\n", filename); saveBitmap(pixels, w, h, filename); free(pixels); wkeDestroyWebView(webView); wkeShutdown(); return 0; }
LRESULT CWkeWebkitWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { m_pWebView = wkeCreateWebView(); if(m_pWebView == NULL) return -1; m_pWebView->setBufHandler(this); // hander.onTitleChanged = onTitleChanged; //默认关闭了通知标题改变的回调函数 // hander.onURLChanged = onURLChanged; // m_pWebView->setClientHandler(&hander); SetTimer(m_hWnd, TM_TICKER,50 ,NULL); return 0; }
LRESULT CWkeWebkitWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { m_pWebView = wkeCreateWebView(); if(!m_pWebView) return -1; m_pWebView->setBufHandler(this); // hander.onTitleChanged = onTitleChanged; //ĬÈϹرÕÁË֪ͨ±êÌâ¸Ä±äµÄ»Øµ÷º¯Êý // hander.onURLChanged = onURLChanged; // m_pWebView->setClientHandler(&hander); SetTimer(m_hWnd, TM_TICKER,50 ,NULL); return 0; }