2

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

CMFCButton* bt = ((CMFCButton*)GetDlgItem(IDC_MFCBUTTON1)); 
bt->SetTooltip(_T("tooltip")); 

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

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

4

2 回答 2

1

我刚刚派生了一个类

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

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

在电话OnInitDialog之后SetTooltip,我做

button.SetDelayFullTextTooltipSet(FALSE);
于 2015-10-07T18:01:08.173 回答
0

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

于 2013-03-11T16:53:19.013 回答