CMFCButton::SetToolTip(str)在OnInitDialog()和

CMFCButton::SetToolTip(str)在OnInitDialog()和,mfc,Mfc,我希望我的CMFCButton在鼠标悬停时显示工具提示。 如果我在OnInitDialog中使用SetToolTip()方法,它将不起作用 CMFCButton* bt = ((CMFCButton*)GetDlgItem(IDC_MFCBUTTON1)); bt->SetTooltip(_T("tooltip")); 但如果我像其他按钮的点击手柄一样将此代码放在消息句柄函数中,它确实可以工作。 我想要的是,当创建对话框时,CMFCButton可以显示工具提示,我应该将这些代码放在哪

我希望我的CMFCButton在鼠标悬停时显示工具提示。 如果我在OnInitDialog中使用SetToolTip()方法,它将不起作用

CMFCButton* bt = ((CMFCButton*)GetDlgItem(IDC_MFCBUTTON1)); 
bt->SetTooltip(_T("tooltip")); 
但如果我像其他按钮的点击手柄一样将此代码放在消息句柄函数中,它确实可以工作。 我想要的是,当创建对话框时,CMFCButton可以显示工具提示,我应该将这些代码放在哪里

========================
顺便说一下,我在属性视图中设置的工具提示文本在大多数情况下都不起作用

您是否调用了基类'OnInitDialog()?主要的一点是,在对控件调用SetToolTip()之前,需要先创建该控件。使用调试器进入OnInitDialog(),查看在调用SetToolTip()时控件的m_hWnd是否有值。

我刚刚派生了一个类

class CMyButton : public CMFCButton
{
public:
    void SetDelayFullTextTooltipSet(bool DelayFullTextTooltipSet)
    {
        m_bDelayFullTextTooltipSet = DelayFullTextTooltipSet;
    }
};
我使用的不是对话框类中的
CMFCButton
变量,而是
CMyButton

OnInitDialog
中,在调用
SetTooltip
之后,我会

button.SetDelayFullTextTooltipSet(FALSE);

是的,我调用了基类“OnInitDialog()”,mfcButton的成员m_pToolTip是有效的。代码bt->GetTooltipCtrl()。GetText(str,bt)可以获得我在属性卡中设置的正确工具提示文本,但它无法显示,除非我在创建对话框后调用setToolTip(str)。相关:我们不能在这里看到完整的类吗?这是正确的答案。应该这样标记。@AndrewTruckle:这是完整的类;不超过此处显示的内容。