Home » Blog » 去掉属性页上面的帮助按钮

    去掉属性页上面的帮助按钮

    Author: xuyibo From: xuyibo.org Time: 2021-08-20 02:36 PM

    记得一年前写1394摄像机SDK的时候,就遇到这个问题,当时没有解决。一年后,制作WizardSheet,又遇到这个问题,终于解决了。

    方法是,算了,还是贴WTL代码(用SDK写界面,也能写,需要关注的细节实在是太多啦)吧:

    class CWizard : public CWizard97SheetImpl
    {
    typedef CWizard97SheetImpl baseClass;

    public:
    CWizard::CWizard(UINT uStartPage = 0, HWND hWndParent = NULL) :
    baseClass(_T(”), IDB_BITMAP_LOGO, IDB_BITMAP_PANEL, uStartPage, hWndParent)
    {
    m_psh.dwFlags &= ~PSH_HASHELP;
    m_pageWelcome.m_psp.dwFlags &= ~PSP_HASHELP;
    m_pageSetup.m_psp.dwFlags &= ~PSP_HASHELP;
    m_pageComplete.m_psp.dwFlags &= ~PSP_HASHELP;

    //m_psh.dwFlags = PSP_DEFAULT|PSP_USECALLBACK|PSP_USEHEADERTITLE|PSP_USEHEADERSUBTITLE;
    this->AddPage(m_pageWelcome);
    this->AddPage(m_pageSetup);
    this->AddPage(m_pageComplete);
    }

    // Message Handlers
    BEGIN_MSG_MAP(thisClass)
    CHAIN_MSG_MAP(baseClass)
    END_MSG_MAP()

    protected:
    CWelcomePage m_pageWelcome;
    CSetupPage m_pageSetup;
    CCompletePage m_pageComplete;
    };

    主要就是在调用AddPage之前清除CWizard97Sheet的PSH_HASHELP标志和CWizardPage的PSP_HASHELP标志。我犯了两个错误,导致没有隐藏帮助按钮:
    1. 没有清除CWizardPage的PSP_HASHELP标志。
    2. 在AddPage后清除PSP_HASHELP标志

    N.B.
    Wizard和属性页实际上是一类窗口类。

    User:

Email:xuyibo@live.cn QQ:85521028
Copyright ©2008 xuyibo.org All rights reserved. License | Contributor