在 MFC 中,CMFCToolBar::OnUserToolTip 是用于处理工具栏按钮的用户提示(tooltip)的受保护方法。该方法在用户将鼠标悬停在工具栏按钮上时调用,允许开发者自定义工具栏按钮的提示信息。

以下是一个简单的示例,展示了如何在派生类中重写 OnUserToolTip 方法:
class CMyToolBar : public CMFCToolBar
{
    DECLARE_DYNAMIC(CMyToolBar)

public:
    CMyToolBar();
    virtual ~CMyToolBar();

protected:
    virtual BOOL OnUserToolTip(CMFCToolBarButton* pButton, CString& strTTText) const;
};

IMPLEMENT_DYNAMIC(CMyToolBar, CMFCToolBar)

CMyToolBar::CMyToolBar()
{
}

CMyToolBar::~CMyToolBar()
{
}

BOOL CMyToolBar::OnUserToolTip(CMFCToolBarButton* pButton, CString& strTTText) const
{
    // 在这里进行自定义的提示信息处理
    // 可以根据需要设置不同按钮的提示信息

    // 调用基类的 OnUserToolTip 以确保执行默认的处理
    if (!CMFCToolBar::OnUserToolTip(pButton, strTTText))
    {
        // 如果基类未设置提示信息,则在这里设置自定义的提示信息
        if (pButton != nullptr && pButton->GetID() == ID_MY_CUSTOM_COMMAND)
        {
            strTTText = _T("自定义命令提示信息");
            return TRUE;
        }
    }

    return FALSE;
}

在上述示例中,CMyToolBar 是一个自定义的工具栏类,通过继承自 CMFCToolBar 并重写 OnUserToolTip 方法,你可以在其中实现自定义的提示信息逻辑。

需要注意的是,使用 OnUserToolTip 方法需要小心,确保不会破坏默认的工具栏提示信息行为。通常,只在需要进行特殊定制时才重写这个方法。


转载请注明出处:http://www.pingtaimeng.com/article/detail/20353/MFC/CMFCToolBar