1

我正在尝试CMFCButton工具提示,发现如果我调用EnableFullText()工具提示不会显示。

这是一个小示例:

// In OnInitDialog()
c_MyBtn.m_nFlatStyle = CMFCButton::BUTTONSTYLE_SEMIFLAT;
c_MyBtn.SetMouseCursorHand();
c_MyBtn.EnableFullTextTooltip();
c_MyBtn.SetTooltip(_T("Some string"));
c_MyBtn.Invalidate();

那么,这个函数有什么作用吗?文档说它“指定是在大工具提示窗口中显示工具提示的全文还是在小工具提示窗口中显示文本的截断版本”,但我唯一看到的是工具提示不显示。我尝试过长字符串和带换行符的字符串,但没有。

任何人都知道这个功能的目的以及如何使用它?

我正在使用 Visual Studio 2008 SP1。

4

1 回答 1

3

MFC 的美妙之处在于微软为您提供了源代码。如果有任何问题,只需查看代码。

EnableFullTextTooltip,它所做的只是设置了几个布尔标志。重要的是m_bDelayFullTextTooltipSetOnDraw在函数中检查此标志。工具提示文本设置为SetTooltip:如果完整的按钮文本适合按钮本身,则使用 NULL 调用它,否则使用按钮文本调用它。

看起来这个函数的目的是让工具提示显示当按钮太小时应该在按钮本身上绘制的文本。如果这不是您想要的,请避免使用此功能,因为它会覆盖您设置的工具提示。

于 2011-11-08T18:11:05.717 回答