1

CMFCRibbonStatusBar在我的大型机中有一个,我向其中添加了一个CMFCRibbonButtonsGroup再次具有CMFCRibbonButton. 此按钮与菜单条目具有相同的 ID。

创建按钮的过程如下:

CMFCRibbonButtonsGroup* pBGroup = new CMFCRibbonButtonsGroup();

CMFCToolBarImages images;
images.SetImageSize(CSize(32, 16)); // Non-square bitmaps
if(images.Load(IDB_STATUSBAR_IMAGES))
{
    pBGroup->SetImages(&images, NULL, NULL);
}

m_pStatusButton = new CMFCRibbonButton(ID_STATUS_SHOWSTATUS,
                                       _T(""),
                                       IMAGEINDEX_DEFAULTSTATUS);

pBGroup->AddButton(m_pStatusButton);

m_wndStatusBar.AddExtendedElement(pBGroup, _T(""));

我想将此按钮用作状态指示器。

我想在以下两种情况下显示工具提示:

  • 当状态改变和
  • 当用户将鼠标移到按钮上时。

我不知道如何首先开始。我查看了ToolTipDemo示例DlgToolTips项目,但无法弄清楚如何去做,因为它们所做的只是显示工具栏项或对话框按钮的工具提示(CWnd-derived 而不是CMFCRibbonButton)。

如果您熟悉ToolTipDemo示例项目:由于似乎有多种处理方式,我希望工具提示看起来像此屏幕截图中所示的“基于扩展可视化管理器”的工具提示。

谢谢!

4

2 回答 2

2

我认为没有鼠标光标在控件上方就不可能显示工具提示。这一切都是自动完成的。

但是,如果您想在屏幕截图中获得漂亮的工具提示,则需要调用SetToolTipTextand SetDescription,如下所示:

CMFCRibbonButton* pBtn = new CMFCRibbonButton(12345, _T(""), 1);
pBtn->SetToolTipText("This is the bold Title");
pBtn->SetDescription("This is the not-so-bold Description");
pGroup->AddButton(pBtn);
于 2009-02-03T00:05:36.637 回答
0

CMFCRibbonButton在 a 中使用控件CMFCRibbonButtonGroup,它被添加到CMFCRibbonStatusBar. 注意CMFCRibbonButton()构造函数中的第 4 个参数bAlwaysShowDescription,因为这似乎会根据是否SetDescription()被调用来影响行为。

具体来说,如果SetDescription()没有被调用,那么是 TRUE 还是 FALSE 都无关紧要bAlwaysShowDescription- 显示工具提示(如我所料)。如果SetDescription()设置bAlwaysShowDescription为 FALSE,则当将鼠标悬停在按钮上时,将显示工具提示及其下方的说明。

鉴于此bAlwaysShowDescription参数的名称,似乎违反直觉的是,当它为 TRUE 并SetDescription()设置时,工具提示和描述都不会出现。我想知道这是否与这篇文章有关: https ://connect.microsoft.com/VisualStudio/feedback/details/399646/cmfcribbonbutton-wont-show-tooltip-if-balwaysshowdescription-1

bAlwaysShowDescription希望这会有所帮助,您可以通过参数的不同组合以及是否SetDescription()设置来实现您所需要的。

于 2012-07-05T23:20:29.047 回答