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

时间:2016-07-20 04:00:51

标签: c++ mfc

添加功能区按钮,我也提供了它的名称。它正在执行其所需的操作,但字符串的放置是荒谬的。它不应该在图像上,而是在它下面。请给我任何建议。添加代码段和屏幕截图。

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);

Print should be just under the image

2 个答案:

答案 0 :(得分:0)

无法改变这一点。这是显示和绘制色带的方式。

“大模式”中的按钮文字始终位于图标下方。我在代码中看不到任何改变这种行为的东西,我永远不会改变它,因为它是人们希望/期望在标准功能区中看到的默认行为。

答案 1 :(得分:0)

此前
AddCategory(m_strMenuName,NULL,NULL,NULL,NULL,i,NULL);

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

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