在CMFCToolBar中设置顶级CMFCToolBarButton的图像

时间:2012-08-07 20:58:37

标签: c++ visual-c++ mfc mfc-feature-pack

我想知道是否可以在CMFCToolbar中的顶级CMFCToolBarButton项目(如File中设置图片(并仅显示该图片,而不显示文字), EditHelp等):

enter image description here

我尝试了什么,但没有效果:

CMFCToolBarMenuButton* button = DYNAMIC_DOWNCAST(CMFCToolBarMenuButton, m_wndMenuBar.GetMenuItem(0));
button->m_bUserButton = TRUE;
button->m_bImage = TRUE;
button->m_bText = FALSE;
button->SetImage(1);
m_wndMenuBar.UpdateButton(0);

在此之前,我正在设置一些自定义图像(实际上是VS2010生成的MFC项目):

if (CMFCToolBar::GetUserImages() == NULL)
{
    // load user-defined toolbar images
    if (m_UserImages.Load(_T(".\\UserImages.bmp")))
    {
        CMFCToolBar::SetUserImages(&m_UserImages);
    }
}

那么,这可能与否?我认为它是,因为CMFCMenuBar派生自CMFCToolBar,它支持它。

更多信息: 实际上,我想要实现的是(红色矩形):

enter image description here

所以我希望在经典的菜单栏中(不像图像中的色带),创建一个图像按钮并右对齐。

2 个答案:

答案 0 :(得分:1)

如果您尝试使用下拉组合框显示“帮助”菜单项,则可能是内置的

CMFCMenuBar::EnableHelpComboBox

应该适合你。查看帮助here

答案 1 :(得分:0)

我这样做了,似乎工作正常:

VERIFY(CMFCToolBar::GetImages()->Load(IDB_MY_NEW_FILE,nullptr,TRUE));
int imageIndex = CMFCToolBar::GetImages()->GetCount();
m_wndToolBar.InsertButton( CMFCToolBarButton(ID_FILE_MYNEWICON,imageIndex) );