让Webbrowser、CDHtmlDialog中的控件显示为系统主题样式

很多程序员可能都有这样的烦恼,开发基于IE内核的浏览器在WinXP以及Vista、Windows7等系统下浏览某些页面的时候缺没有系统主题的样式,按钮、文本框等还是Windows9x时代那种老的样式。在此笔者总结出几种方法解决,大家可以参考一下。

方法1:在HTML文件里加上如下代码

<META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes"> 

此方法对于不是自己设计的网页不实用.

方法2:

LoadLibrary (“explorer.exe”);

此方法在网络上广为流传,但笔者不推荐这样做.

 

方法3:在以CDHtmlDialog 类为基类的头文件中加入如下代码(推荐)

class CWebBrowserThemeDlg : public CDHtmlDialog
 { 
    STDMETHOD(GetHostInfo)(DOCHOSTUIINFO *pInfo){pInfo->dwFlags |= DOCHOSTUIFLAG_THEME; return S_OK;}; 
};
 

WebBrowser 控件有一个IDocHostUIHandler 回调接口,这个接口用于WebBrowser 显示内容时,向WebBrowser 调用者查询界面设置的配置信息。其中有一个叫做GetHostInfo 的回调函数,通过设置DOCHOSTUIFLAG_THEME 就可以设定WebBrowser 显示的控件是具有Theme 的,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值