描述:
在菜单栏 工具栏中加入文字和图标,在修改字体后,第一个显示框中图标显示,但是文字显示不全,但将第一个显示框与第二个显示框交换后,就可以全部显示出来,但是当前的第一个显示框也就是之前的第二个又显示不全了。
为vs2008环境
代码如下:
void CMainFrame::InitializeRibbon()
{
BOOL bNameValid;
CString strTemp;
bNameValid = strTemp.LoadString(IDS_RIBBON_FILE);
ASSERT(bNameValid);
// 加载面板图像:
m_PanelImages.SetImageSize(CSize(16, 16));
m_PanelImages.Load(IDB_BUTTONS);
// 初始主按钮:
m_MainButton.SetImage(IDB_MAIN);
m_MainButton.SetText(_T("\nf"));
m_MainButton.SetToolTipText(strTemp);
m_wndRibbonBar.SetApplicationButton(&m_MainButton, CSize (45, 45));
CMFCRibbonMainPanel* pMainPanel = m_wndRibbonBar.AddMainCategory(strTemp, IDB_FILESMALL, IDB_FILELARGE);
bNameValid = strTemp.LoadString(IDS_RIBBON_CLOSE);
ASSERT(bNameValid);
pMainPanel->Add(new CMFCRibbonButton(ID_FILE_CLOSE, strTemp, 9, 9));
bNameValid = strTemp.LoadString(IDS_RIBBON_RECENT_DOCS);
ASSERT(bNameValid);
pMainPanel->AddRecentFilesList(strTemp);
bNameValid = strTemp.LoadString(IDS_RIBBON_EXIT);
ASSERT(bNameValid);
pMainPanel->AddToBottom(new CMFCRibbonMainPanelButton(ID_APP_EXIT, strTemp, 15));
// 为“剪贴板”面板添加“辅”类别:
bNameValid = strTemp.LoadString(IDS_RIBBON_TEST);
ASSERT(bNameValid);
//重新选择位图
CMFCRibbonCategory* pCategoryHomeE = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL, IDB_WRITELARGE2);
bNameValid = strTemp.LoadString(IDS_RIBBON_TESTTYPE);
ASSERT(bNameValid);
CMFCRibbonPanel* pPanelClipboard3 = pCategoryHomeE->AddPanel(strTemp, m_PanelImages.ExtractIcon(7));
bNameValid = strTemp.LoadString(IDS_RIBBON_VCLINE);
ASSERT(bNameValid);
CMFCRibbonButton* pBtnPasteT = new CMFCRibbonButton(ID_EDIT_PASTE, strTemp, 11, 2);
pPanelClipboard3->Add(pBtnPasteT);
// 为“剪贴板”面板添加“主”类别:
bNameValid = strTemp.LoadString(IDS_RIBBON_HOME);
ASSERT(bNameValid);
//重新选择位图
CMFCRibbonCategory* pCategoryHome = m_wndRibbonBar.AddCategory(strTemp, IDB_WRITESMALL, IDB_WRITELARGE2);
//bNameValid = strTemp.LoadString(IDS_RIBBON_SELECTALL);
//ASSERT(bNameValid);
//pPanelView->Add(new CMFCRibbonButton(ID_EDIT_SELECT_ALL, strTemp, -1));
bNameValid = strTemp.LoadString(IDS_RIBBON_TESTTYPE);
ASSERT(bNameValid);
CMFCRibbonPanel* pPanelClipboard2 = pCategoryHome->AddPanel(strTemp, m_PanelImages.ExtractIcon(7));
bNameValid = strTemp.LoadString(IDS_RIBBON_VCLINE);
ASSERT(bNameValid);
CMFCRibbonButton* pBtnPaste = new CMFCRibbonButton(ID_EDIT_PASTE, strTemp, 11, 2);
pPanelClipboard2->Add(pBtnPaste);
//////////////---------有问题
//pPanelClipboard2->EnableLaunchButton(IDS_RIBBON_VIEW,0);
bNameValid = strTemp.LoadString(IDS_RIBBON_BEZIER);
ASSERT(bNameValid);
pPanelClipboard2->Add(new CMFCRibbonButton(ID_EDIT_CUT, strTemp, 12, 3 ));
bNameValid = strTemp.LoadString(IDS_RIBBON_RECTANGEL);
ASSERT(bNameValid);
pPanelClipboard2->Add(new CMFCRibbonButton(ID_EDIT_COPY, strTemp, 13, 4));
bNameValid = strTemp.LoadString(IDS_RIBBON_POLYGON);
ASSERT(bNameValid);
pPanelClipboard2->Add(new CMFCRibbonButton(ID_DRAW_VCCIRCLE,strTemp,14,5));
bNameValid = strTemp.LoadString(IDS_RIBBON_VCELLIPSE);
ASSERT(bNameValid);
pPanelClipboard2->Add(new CMFCRibbonButton(ID_DRAW_VCELLIPSE,strTemp,15,6));
bNameValid = strTemp.LoadString(IDS_RIBBON_POLYGON);
ASSERT(bNameValid);
pPanelClipboard2->Add(new CMFCRibbonButton(ID_DRAW_POLYGON,strTemp,16,7));
// 创建和添加“视图”面板:
bNameValid = strTemp.LoadString(IDS_RIBBON_VIEW);
ASSERT(bNameValid);
CMFCRibbonPanel* pPanelView = pCategoryHome->AddPanel(strTemp, m_PanelImages.ExtractIcon (7));
bNameValid = strTemp.LoadString(IDS_RIBBON_STATUSBAR);
ASSERT(bNameValid);
CMFCRibbonButton* pBtnStatusBar = new CMFCRibbonCheckBox(ID_VIEW_STATUS_BAR, strTemp);
pPanelView->Add(pBtnStatusBar);
bNameValid = strTemp.LoadString(IDS_RIBBON_STATUSBAR);
ASSERT(bNameValid);
CMFCRibbonButton* pBtnStatusBar2 = new CMFCRibbonCheckBox(ID_VIEW_STATUS_BAR, strTemp );
pPanelView->Add(pBtnStatusBar2);
// 将元素添加到选项卡右侧:
bNameValid = strTemp.LoadString(IDS_RIBBON_STYLE);
ASSERT(bNameValid);
CMFCRibbonButton* pVisualStyleButton = new CMFCRibbonButton(-1, strTemp, -1, -1);
pVisualStyleButton->SetMenu(IDR_THEME_MENU, FALSE /* 无默认命令*/, TRUE /* 右对齐*/);
bNameValid = strTemp.LoadString(IDS_RIBBON_STYLE_TIP);
ASSERT(bNameValid);
pVisualStyleButton->SetToolTipText(strTemp);
bNameValid = strTemp.LoadString(IDS_RIBBON_STYLE_DESC);
ASSERT(bNameValid);
pVisualStyleButton->SetDescription(strTemp);
m_wndRibbonBar.AddToTabs(pVisualStyleButton);
// 添加快速访问工具栏命令:
CList<UINT, UINT> lstQATCmds;
lstQATCmds.AddTail(ID_FILE_NEW);
lstQATCmds.AddTail(ID_FILE_OPEN);
lstQATCmds.AddTail(ID_FILE_SAVE);
lstQATCmds.AddTail(ID_FILE_PRINT_DIRECT);
m_wndRibbonBar.SetQuickAccessCommands(lstQATCmds);
m_wndRibbonBar.AddToTabs(new CMFCRibbonButton(ID_APP_ABOUT, _T("\na"), m_PanelImages.ExtractIcon (0)));
}
哪位达人赐教一下,谢谢!!
解决方案1:
好象是创建后没有更新,找一下如何更新菜单栏和工具栏