c++及图形学
最近项目中用html 来做界面,也就折腾了一下在wxwidget中嵌入浏览器的若干细节工作,mfc也基本是类似的,由于wxwidget中已经做了一个封装wxie,但是开发过程中也遇到了不少问题,在此做一下总结:
但是这个方法的缺点是,必须要把页面头部的dtd申明去掉。网上的错误提法是类似以下链接的: http://www.faceker.com/200801/webbrowser-no-border.html 这里面讲,只要把头部改成:
但是目前很多页面用了比较新的css,改成这样后,页面就无法正常显示了。让网页美工改样式? 真是有点困难。 后来继续查阅了资料,发现比较好的办法,那就是重载 IDocHostUIHandler 接口,其中,实现以下部分:
其中 DOCHOSTUIFLAG_NO3DBORDER 就表示不要生成边框,DOCHOSTUIFLAG_SCROLL_NO 表示不要生成滚动条这样就可以比较完美的解决边框和滚动条的问题,不用依赖页面的调整 。让设计师爱用什么用什么。 另外一个就是禁用右键菜单,网上也有不少办法,但是用这个接口可以很简单的实现:
这里不仅可以控制右键菜单显示,m_contextMenuMode = kNoContextMenu,还可以做到自定义菜单显示,m_contextMenuMode =其他值。因为暂时还不需要自定义菜单,所以这里没有实现。 如果用wxie,就在FrameSite类增加这个接口即可,不关注的接口直接返回S_FALSE 或E_NOTIMPL; 如果用sdk或mfc,可以 调用IOleObject 的SetClientSite 方法,设置一个继承了IOleClientSite 和 IDocHostUIHandler 的接口。
posted on 2008-12-20 22:00 jerrychan 阅读(4359) 评论(12) 编辑 收藏 引用 所属分类: C++
太好了 我试试 回复 更多评论
那能不能让网页透明?半透明?主要滚动条可以透明么??期待恢复哦。thank! 回复 更多评论
@小不点 半透明可能有点困难,所以这个方法还是有一点局限性 。想要半透明的话,用flash可以做到,不过好像也不是很容易。以后可能会用到flash来做界面,现在用html是考虑到他比较简单,页面也容易设计 回复 更多评论
是的,看过用flash做界面的,听说很多游戏里面的界面用flash,但是自己到还没发现过,只是看过有用html(网页)来做游戏界面,比如第三方的html渲染引擎,自己也考虑过用ie但是处理滚动条透明就是 没找到好办法~~ 回复 更多评论
@小不点 刚看到网上有个人提到用两个窗口来实现,一个窗口是实际的html页,隐藏不显示,另一个是显示页,把html的内容画上去,这样就可以用windows的半透明窗口来做了 。以后有空尝试一下 回复 更多评论
codeproject 上有个差不多的,他是把html绘制到一张图片上,然后自己实现透明之类的。图片大小知道了那么滚动跳自己就能实现了,意思是不是差不多? 回复 更多评论
差不多,今天在wxwidget里面简单试了下,没有成功,可能是wx的问题,有兴趣你可以试一下。 回复 更多评论
博主您能不能公布一下您的WXIE的代码,由于找到的网上的代码和新版的wxactive不兼容,需要修改很多地方,望能给予帮助 回复 更多评论
期待博主分享一下修改过的wxActiveX的代码,目前想用wxWidgets+html+js做一个穿透式查询的报表模块,正好需要这个东西,不知博主能否开源? 回复 更多评论
顺便问下,我直接使用WXIE,会出现FrameSite无法实例化的问题,不知道能否解决? 回复 更多评论
HTML->C++双向通信那 能否代码发我份 万分感谢谢谢 回复 更多评论
双向通讯那代码能否 发我一份 258185589@qq.com 回复 更多评论
Powered by: C++博客 Copyright © jerrychan