• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > Ribbon编程时遇到的问题???急!!!!!!!!

Ribbon编程时遇到的问题???急!!!!!!!!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了ribbon,ribbon是什么意思,ribbontie,ribbon界面,blue ribbon等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: Ribbon编程时遇到的问题???急!!!!!!!!
描述:

在菜单栏 工具栏中加入文字和图标,在修改字体后,第一个显示框中图标显示,但是文字显示不全,但将第一个显示框与第二个显示框交换后,就可以全部显示出来,但是当前的第一个显示框也就是之前的第二个又显示不全了。
为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:

好象是创建后没有更新,找一下如何更新菜单栏和工具栏


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 想用Word2007的RibbonComboBox/RibbonDropDown等类,不知道要#import那个类型库或者DLL
  • Excel2007Add-in总是响应点击RibbonData事件
  • ATL_Outlook_Addin_RibbonX急需高手解答!!
  • 如何开发一个Word2007有自定义ribbon的插件啊?
  • ActiveX封装多文档(采用bcg中的Ribbon模式),程序关闭以后其中dll不能释放,造成进程关闭不了
  • MFCribbon下怎么让某一Category类别下的按钮显示或者隐藏呢
  • Ribbon编程时遇到的问题???急!!!!!!!!

相关文章

  • 2017-06-04 C++中制作的OCX能不能在C#中以传址方式将string传入
  • 2017-06-05 ocx接口数据类型设计(在线等结贴)
  • 2017-06-05 我做了一个键盘的勾子程序,但不知为什么每次捕获一个键的时候那个KeyboardProc函数都会执行两次?
  • 2017-06-04 ATL控件如何获得自身的m_hwnd窗口句柄)?(非net环境)
  • 2017-06-04 VB中调用EXCEL画图遇到的问题
  • 2017-06-05 如何更改被另一进程打开的文件?
  • 2017-06-05 用共享内存在进程间传送结构体的问题
  • 2017-06-04 VC中包含EXCEL类型库(import),为什么会出现__missing_type__字样的错误啊?急。
  • 2017-06-05 mfc中怎么使用自己的类
  • 2017-06-04 我只用过MFC请问sdk编程win32api编程和MFC都是什么关系

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • DCOM“没有注册类别”的错误
    • 有谁给我讲解一下vc里的线程使用,详细一点~初级~
    • 怎么样判断另一个程序是否正在运行?
    • 请教:在vs2005里建立了一个WTL工程,在没有任何更改的情况下不能编译通过,一大堆ambiguoussymbol的提示。
    • 求潘爱民的《com原理与应用》源代码
    • 使用openssl库开发com组件的问题
    • CUnknwon和CFactory使用问题
    • 在COM中的内部线程,在什么时候启动,什么时候关闭
    • 怎么获得应用程序的主线程ID????????????????
    • 在DLL中创建进程失败,为什么?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有