MFC,功能区 - 带图像的 CMFCRibbonButton:始终显示文本

MFC, Ribbons - CMFCRibbonButton with image: Always show the text

我有一个显示文本和图标的 CMFCRibbonButton。当我压缩功能区时,最后只显示小图标。 有没有办法告诉按钮不要压缩成小图标状态,但也总是显示文本? 我试过 pButton->SetCompactMode(FALSE);没有成功。

可以肯定的是,CMFCRibbonButton::SetAlwaysLargeImage() 不是您要查找的内容?我问,因为当只显示一个没有文本的图标时,通常是按钮所在的面板折叠了。参见 CMFCRibbonPanel::IsCollapsed()。如果您想修改面板的行为以使其不会折叠,您可以尝试继承 CMFCRibbonPanel 并使用覆盖。 MFC 功能区没有完整记录,但我最好的选择是 CMFCRibbonPanel::IsFixedSize():

class CMyPanel : public CMFCRibbonPanel
{
    ...
    BOOL IsFixedSize() const { return TRUE; }
    ...
}

如果这不起作用,您必须自己看看 NotifyControlCommandOnUpdateCmdUI 面板折叠时会发生什么,并根据需要修改行为。