关于WebBrowser使用问题
2013-12-29 18:01
141 查看
由于工作需要,最近一直在看IE编程方面的知识,也查了很多微软官网的资料,非常感谢微软的技术人员的帮助文档;
如果想用好这个组件的话需要对COM组件基础知识有了解,因为IE本分就是COM技术的典型应用。
class CClientBrowser : public IOleContainer,
public IOleClientSite,
public IOleInPlaceSite,
public IOleControlSite,
public IDocHostUIHandler,
public DWebBrowserEvents2;
上面是我用到的类,由于是C++导出接口而且都是纯虚函数所以必须把上面这些类的成员都需要实现;
IWebBrowser2* __web_browser;
IOleObject* __ole_object;
IConnectionPoint* __conn_point;
我用到的类成员,IWebBrowser2->Navigate2来打开网页的;
在开发过程中需求随时都在改变,一会需求不能有3D边框,一会不能有下拉条,要想知道网页下载完成的回调了,等等...
1: 首先去掉3D边框网页程序员绝对可以实现的,但是给我了句我真心改不了,所以我只能硬着头皮又在MSDN查资源来解决3D边框和下拉条的问题,
就是为了实现GetHostInfo这个函数,搞的我又写了很多代码;
if ( __ui_info )
{
__ui_info->cbSize = sizeof( DOCHOSTUIINFO );
__ui_info->dwFlags = DOCHOSTUIFLAG_NO3DBORDER|DOCHOSTUIFLAG_SCROLL_NO;
__ui_info->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
}
这样3D边框和下拉条就自然消失了;
2 :去掉右键菜单那就更容易了,ShowContextMenu 当你在浏览器右键的时候就会调用者个回调函数,所以你可以在这里面处理右键菜单‘
STDMETHODIMP CClientBrowser::ShowContextMenu( DWORD __dwid , POINT* __point , IUnknown* __unknown , IDispatch* __dispatch )
{
return ( S_OK );
}
返回S_OK右键菜单就可以消失,对于C++程序员来说这太幸福了;
好了,这是我第一次在CSDN写博客,希望对大家有帮助;需要代码的同学加我Q121593025,共同进步,才是硬道理;
如果想用好这个组件的话需要对COM组件基础知识有了解,因为IE本分就是COM技术的典型应用。
class CClientBrowser : public IOleContainer,
public IOleClientSite,
public IOleInPlaceSite,
public IOleControlSite,
public IDocHostUIHandler,
public DWebBrowserEvents2;
上面是我用到的类,由于是C++导出接口而且都是纯虚函数所以必须把上面这些类的成员都需要实现;
IWebBrowser2* __web_browser;
IOleObject* __ole_object;
IConnectionPoint* __conn_point;
我用到的类成员,IWebBrowser2->Navigate2来打开网页的;
在开发过程中需求随时都在改变,一会需求不能有3D边框,一会不能有下拉条,要想知道网页下载完成的回调了,等等...
1: 首先去掉3D边框网页程序员绝对可以实现的,但是给我了句我真心改不了,所以我只能硬着头皮又在MSDN查资源来解决3D边框和下拉条的问题,
就是为了实现GetHostInfo这个函数,搞的我又写了很多代码;
if ( __ui_info )
{
__ui_info->cbSize = sizeof( DOCHOSTUIINFO );
__ui_info->dwFlags = DOCHOSTUIFLAG_NO3DBORDER|DOCHOSTUIFLAG_SCROLL_NO;
__ui_info->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
}
这样3D边框和下拉条就自然消失了;
2 :去掉右键菜单那就更容易了,ShowContextMenu 当你在浏览器右键的时候就会调用者个回调函数,所以你可以在这里面处理右键菜单‘
STDMETHODIMP CClientBrowser::ShowContextMenu( DWORD __dwid , POINT* __point , IUnknown* __unknown , IDispatch* __dispatch )
{
return ( S_OK );
}
返回S_OK右键菜单就可以消失,对于C++程序员来说这太幸福了;
好了,这是我第一次在CSDN写博客,希望对大家有帮助;需要代码的同学加我Q121593025,共同进步,才是硬道理;
相关文章推荐
- 关于webBrowser使用代理的问题 [已结贴,结贴人:liuyh83]
- 关于使用WinHtmlEditor控件获得html代码加载到wpf中webbrowser控件上乱码问题
- 求解 关于 套汇问题 要求 使用 C++
- 关于在myeclipse中添加maven的配置问题 以及使用
- 关于appium测试使用setup和setupclass的问题
- Winform 下使用WebBrowser的HTML编辑控件—WinHtmlControl 在win7 IE9下的问题记录
- spring mvc使用过程中关于spring:bind和绑定java.util.Date遇到的问题
- 关于使用Flexigrid的问题
- 转关于使用月历控件时·时间不准确问题
- 关于drools使用时的wrong class format报错问题
- 关于react 官方脚手架使用出现的问题
- 关于VS 中添加OpenCV 使用配置问题(版本号原因)
- 记录一个java.util.logging.Logger 使用中关于时间格式的问题
- 关于shm_open和shm_unlink的使用问题
- 关于Ibatis中的executeForObject方法使用时,需要考虑空的问题!
- 关于Data 控件的使用有关问题!
- 关于mentohust认证中出现“不允许使用的客户端类型”问题方案
- 关于Volley中JsonObjectRequest使用Post设置参数的问题
- 关于vector的vector<vector<int>>的使用问题
- 关于分数是否可以使用PlayerPrefs存储的问题