如何在功能区按钮上对齐文本

How to allign text on ribbon button?

本文关键字:对齐 文本 按钮 功能区      更新时间:2023-10-16

在添加功能区按钮时,我也为它提供了名称。它正在执行所需的操作,但字符串的位置很荒谬。它不应该在图片上方,而应该在图片下方。有什么建议吗。添加代码片段和屏幕截图。

RibbonButtonProp* mRibbonProperties;
bool m_bsetlargeimage = FALSE;
if (ButtonProp.Lookup(m_nMenuItemID, mRibbonProperties) != 0)
{
    if (ButtonProp[m_nMenuItemID]->m_bIfSmallButton == FALSE)
    {
        m_PanelImage.SetImageSize(CSize(32, 32));
        m_PanelImage.Load(ButtonProp[m_nMenuItemID]->m_nImageResourceId);
        m_bsetlargeimage = TRUE;
    }
    else
    {
        m_PanelImage.SetImageSize(CSize(16, 16));
        m_PanelImage.Load(ButtonProp[m_nMenuItemID]->m_nImageResourceId);
        m_bsetlargeimage = FALSE;
    }
    pRibbonButton = new CMFCRibbonButton(m_nMenuItemID, m_strMenuItemName, m_PanelImage.ExtractIcon(ButtonProp[m_nMenuItemID]->m_nImageIndex));
    pRibbonButton->SetAlwaysLargeImage(m_bsetlargeimage);

打印应该刚好在图像下方

没有办法改变这一点。这就是色带的显示和绘制方式。

"大模式"下的按钮文本始终绘制在图标下方。我在代码中看不到任何可以改变这种行为的内容,我永远不会改变这种行为,因为这是人们希望/期望在标准功能区中看到的默认行为。

早期
AddCategory(m_strMenuName,NULL,NULL,NULL,i,NULL);

现在
AddCategory(m_strMenuName,NULL,NULL,CSize(16,16),CSSize(32,32),i,NULL);

说明:在调用create时,它放置文本时假设所有图像大小都很小,因为它还没有定义。