基于WebKit内核的浏览器设置放大缩小
来源:互联网 发布:便携式打印机 知乎 编辑:程序博客网 时间:2024/06/06 17:17
环境:win7 32位,vs2013,webkit-r174650
主要思路是修改webkit源码,在webview添加一个接口,同webkit内核打交道
在webview工程中搜索setTextSizeMultiplier,这个函数只放大文字,不能满足要求,所以添加新的函数以及接口
WebView.h
virtual HRESULT STDMETHODCALLTYPE setSizeMultiplier(/* [in] */ float multiplier, /* [in] */ BOOL isTextOnly);virtual HRESULT STDMETHODCALLTYPE sizeMultiplier(/* [in] */ BOOL isTextOnly, /* [retval][out] */ float *multiplier);
WebView.cpp
HRESULT STDMETHODCALLTYPE WebView::setSizeMultiplier(/* [in] */ float multiplier, /* [in] */ BOOL isTextOnly){if (!m_mainFrame)return E_FAIL;setZoomMultiplier(multiplier, isTextOnly);return S_OK;}HRESULT STDMETHODCALLTYPE WebView::sizeMultiplier( /* [in] */ BOOL isTextOnly, /* [retval][out] */ float* multiplier){ *multiplier = zoomMultiplier(isTextOnly); return S_OK;}
IWebView.idl
HRESULT setSizeMultiplier([in] float multiplier, [in] BOOL isTextOnly);HRESULT sizeMultiplier([in] BOOL isTextOnly, [out, retval] float* multiplier);
调用处:
HRESULT WinLauncher::prepareViews(HWND mainWnd, const RECT& clientRect, const BSTR& requestedURL, HWND& viewHwnd){ if (!m_webView) return E_FAIL; HRESULT hr = m_webView->setHostWindow(mainWnd); if (FAILED(hr)) return hr; hr = m_webView->initWithFrame(clientRect, 0, 0); if (FAILED(hr)) return hr;IWebFramePtr frame;hr = m_webView->mainFrame(&frame.GetInterfacePtr());if (FAILED(hr))return hr; if (!requestedURL) { frame->loadHTMLString(_bstr_t(defaultHTML).GetBSTR(), 0); }hr = m_webView->setSizeMultiplier(m_fSizeMultiplier, FALSE); hr = m_webViewPrivate->setTransparent(m_useLayeredWebView); if (FAILED(hr)) return hr; hr = m_webViewPrivate->setUsesLayeredWindow(m_useLayeredWebView); if (FAILED(hr)) return hr; hr = m_webViewPrivate->viewWindow(&viewHwnd); return hr;}
0 0
- 基于WebKit内核的浏览器设置放大缩小
- Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件
- 浏览器放大缩小事件
- webkit内核浏览器不支持小于12px字体的设置
- webkit内核浏览器滚动条设置
- JQuery 检测浏览器放大缩小
- 浏览器的放大缩小与还原的问题
- 如何放大或缩小浏览器的显示字体
- 去掉微信浏览器里的放大缩小按钮
- 放大缩小的代码
- 图片的放大缩小
- UIScrollView 的放大缩小
- 图片的放大缩小
- 图片的放大缩小
- Webkit内核的浏览器默认CSS属性
- 移动浏览器的内核WebKit介绍
- webkit内核浏览器的CSS写法
- webkit内核浏览器的CSS写法
- Http通信
- Active MQ 使用
- 43.事件传递 事件响应者链 touch方法
- Python中range和xrange的区别
- CoolFormat源代码格式化工具
- 基于WebKit内核的浏览器设置放大缩小
- Unexpected end of ZLIB input stream
- java 从网络Url中下载文件
- CSS position属性
- 让模拟器显示中文输入法
- 通过cmd命令到ftp上下载文件
- struts2学习笔记之十五(输入校验)
- hdu 1505 City Game(dp)
- 构建iOS持续集成平台(一)——自动化构建和依赖管理