很多程序员可能都有这样的烦恼,开发基于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 的,