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

问题描述 投票:0回答:2

我希望我的

CMFCButton
在鼠标悬停时显示工具提示。 如果我在
SetToolTip()
 中使用 
OnInitDialog

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

但是如果我将此代码像另一个按钮的单击句柄一样放入消息处理函数中,它确实有效。 我想要的是创建对话框时

CMFCButton
可以显示工具提示,我应该把这些代码放在哪里?

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

mfc
2个回答
1
投票

我刚刚派生了一个类

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

我现在使用按钮,而不是 Dialog 类上的

CMFCButton
变量,而是使用
CMyButton

OnInitDialog
中,在
SetTooltip
通话之后,我会

button.SetDelayFullTextTooltipSet(FALSE);

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.