CMFCButton :: SetToolTip(str)在OnInitDialog()和中不起作用

时间:2013-03-11 15:05:14

标签: mfc

我希望我的CMFCButton在鼠标悬停时显示工具提示。 如果我在OnInitDialog

中使用SetToolTip()方法,它不起作用
CMFCButton* bt = ((CMFCButton*)GetDlgItem(IDC_MFCBUTTON1)); 
bt->SetTooltip(_T("tooltip")); 

但如果我将此代码放在消息句柄函数中,就像其他按钮的单击句柄一样,它确实有用。 我想要的是CMFCButton可以在创建对话框时显示工具提示,我应该在哪里放这些代码?

======================== 顺便说一下,我在属性视图中设置的工具提示文本大部分时间都不起作用。

2 个答案:

答案 0 :(得分:1)

我刚刚派生了一个班级

class CMyButton : public CMFCButton
{
public:
    void SetDelayFullTextTooltipSet(bool DelayFullTextTooltipSet)
    {
        m_bDelayFullTextTooltipSet = DelayFullTextTooltipSet;
    }
};

而不是Dialog类上的CMFCButton变量我使用按钮,现在我有一个CMyButton

OnInitDialogSetTooltip来电之后,我做了

button.SetDelayFullTextTooltipSet(FALSE);

答案 1 :(得分:0)

你有没有调用基类'OnInitDialog()?重点是需要在调用SetToolTip()之前创建控件。使用调试器进入OnInitDialog()并在调用SetToolTip()时查看控件的m_hWnd是否有值。