none
怎样让 CDhtmlDialog 中的控件显示为XP风格的 RRS feed

答案

  • 用代码修改也比较简单:

    class CWebBrowserThemeDlg : public CDHtmlDialog
    {
    // Construction
    public:
        CWebBrowserThemeDlg(CWnd* pParent = NULL);    // standard constructor

    // Dialog Data
        enum { IDD = IDD_WEBBROWSERTHEME_DIALOG, IDH = IDR_HTML_WEBBROWSERTHEME_DIALOG };

        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

        HRESULT OnButtonOK(IHTMLElement *pElement);
        HRESULT OnButtonCancel(IHTMLElement *pElement);

        STDMETHOD(GetHostInfo)(DOCHOSTUIINFO *pInfo){pInfo->dwFlags += DOCHOSTUIFLAG_THEME; return S_OK;};

    };

    将黑体这一行,放到你的以CDHtmlDialog 类为基类的头文件中去,就可以了。

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

全部回复

  • 用代码修改也比较简单:

    class CWebBrowserThemeDlg : public CDHtmlDialog
    {
    // Construction
    public:
        CWebBrowserThemeDlg(CWnd* pParent = NULL);    // standard constructor

    // Dialog Data
        enum { IDD = IDD_WEBBROWSERTHEME_DIALOG, IDH = IDR_HTML_WEBBROWSERTHEME_DIALOG };

        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

        HRESULT OnButtonOK(IHTMLElement *pElement);
        HRESULT OnButtonCancel(IHTMLElement *pElement);

        STDMETHOD(GetHostInfo)(DOCHOSTUIINFO *pInfo){pInfo->dwFlags += DOCHOSTUIFLAG_THEME; return S_OK;};

    };

    将黑体这一行,放到你的以CDHtmlDialog 类为基类的头文件中去,就可以了。

    WebBrowser 控件有一个IDocHostUIHandler 回调接口,这个接口用于WebBrowser 显示内容时,向WebBrowser 调用者查询界面设置的配置信息。其中有一个叫做GetHostInfo 的回调函数,通过设置DOCHOSTUIFLAG_THEME 就可以设定WebBrowser 显示的控件是具有Theme 的,
    2010年3月3日 5:42
    版主
  • GetHostInfo里设置dwFlags的方式应该是这样吧:

    pInfo->dwFlags |= DOCHOSTUIFLAG_THEME;

    2010年6月30日 3:02
  • 在这里 加 和 或 是等价的。
    2010年7月4日 9:14
    版主