当前位置: 首页 > news >正文

BCGControlBar中文教程之Ribbon Backstage视图(三)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

BCGControlBar Pro for MFC最新试用版下载请猛戳>>>

为了在应用程序中启用Backstage视图,您可以执行以下步骤。以下的指南假设Ribbon控件被定义为m_wndRibbonBar,应用程序按钮上显示的文本是"File",命令图片以图片列表的形式展示,视图项拥有一个资源ID IDB_FILESMALL。下面提到的图像索引假设您已经获得下面的图像列表:

Ribbon Backstage视图

11. 在资源编辑器汇总新增一个具有IDD_FORM_RECENTFILES ID的新的对话框资源。

12. 打开对话框的属性,并设置Style - Child、Border - None、Clip siblings - checked、Clip children - checked。

13. 将3个控件放置在该对话框中——静态文本"Recent Files"、集中在对话框客户端区域的列表框和它们之间的分隔符。IDC_RECENT_FILES ID分配给列表框、IDC_INFO_LABEL1分配给静态文本、IDC_SEPARATOR_1分配给分隔符:

Ribbon Backstage视图

14. 从CBCGPDialog中派生出一个类,然后命名为CBackStagePageRecentFiles。

15. 按照如下使用CBCGPRecentFilesListBox来替代标准的列表框:

  • 定义对话框成员CBC PRecentFilesListBox m_wndRecentFiles;
  • 在CBackStagePageRecentFiles:: DoDataExchange中添加DDX_CONTROL宏:DDX_Control(pDX, IDC_RECENT_FILES, m_wndRecentFiles);

16. 当父Backstage视图调整大小时使用自动调整功能使对话框上的所有空间自动对齐。为此将下面的代码添加到OnInitDialog中:

1

2

3

4

5

CBCGPStaticLayout* pLayout = (CBCGPStaticLayout*)GetLayout();

 

pLayout->AddAnchor(IDC_INFO_LABEL1, CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeHorz);

pLayout->AddAnchor(IDC_SEPARATOR_1, CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeHorz);

pLayout->AddAnchor(IDC_RECENT_FILES, CBCGPStaticLayout::e_MoveTypeNone, CBCGPStaticLayout::e_SizeTypeBoth);

此代码意味着静态文本空间不动,只是水平调整;分隔符空间不动,只是水平调整;列表控件不动,垂直和水平调整。

17. 现在我们回到初始代码,并添加一个全新的视图条目命名为"Recent":

1

2

3

CBCGPRibbonBackstageViewItemForm* pFormRecent = new CBCGPRibbonBackstageViewItemForm (IDD_FORM_RECENTFILES, RUNTIME_CLASS(CBackStagePageRecentFiles));

 

pBackstagePanel->AddView (0, _T("Recent"), pFormRecent);

18. 可能会在激活视图(激活的对话框)右下角显示一个水印图像。为此添加一个新的位图资源,并为其分配ID IDB_BS_WATERMARK。现在您可以通过调用SetWaterMarkImage为每个CBCGPRibbonBackstageViewItemForm或CBCGPRibbonBackstageViewItemPropertySheet对象设置水印图像。

19. 设置添加水印图像到"Recent"视图中:

1

pFormRecent->SetWaterMarkImage(IDB_BS_WATERMARK, RGB(0, 0, 192));

最后一个参数可以是相应于我们在步骤3设置的应用程序按钮颜色。

20. 添加最后一个命令"Exit":

pBackstagePanel->AddCommand (ID_APP_EXIT, _T("Exit"), 5 /* Image index */);

21. 现在,您可以编译并运行应用程序,同时可以在Backstage视图的右边查看6项条目:Save、Save As、Open、Close、Recent、Exit,其中有5个条目是命令,1个是视图("Recent")。当您单击命令时,Back Stage视图被关闭并执行单击的命令。当您选择一个视图条目 ("Recent")时,与MRU文件列表相对应的对话框将会显示在Backstage视图的右侧:

Ribbon Backstage视图

有兴趣的朋友可以点击查看更多BCG资源>>

转载于:https://my.oschina.net/u/2317468/blog/742341

相关文章:

  • 【笔记】震惊!世上最接地气的字符串浅谈(Trie AC自动机 Manacher)
  • Ruby on Rails 开发 web
  • Carousel 旋转画廊特效的疑难杂症
  • 复习(2)
  • linux jenkins添加windows节点,实现自动化部署
  • 理解 Android MVP 开发模式
  • 文本文件查看及创建
  • Jquery easyui tree 一些常见操作
  • 设计模式(二十三)中介者模式
  • 3.7、@ResponseBody 和 @RestController
  • C 语言 格式化输出输入
  • ls输出显示命令总结
  • 指针
  • 第二周 词频统计
  • java之struts2的action的创建方式
  • es6(二):字符串的扩展
  • github指令
  • Hibernate最全面试题
  • Laravel 菜鸟晋级之路
  • leetcode388. Longest Absolute File Path
  • PAT A1092
  • Python学习之路13-记分
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • text-decoration与color属性
  • Vue全家桶实现一个Web App
  • Wamp集成环境 添加PHP的新版本
  • Xmanager 远程桌面 CentOS 7
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 解析 Webpack中import、require、按需加载的执行过程
  • 模型微调
  • 如何使用 JavaScript 解析 URL
  • 使用putty远程连接linux
  • 算法-插入排序
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 硬币翻转问题,区间操作
  • 原生 js 实现移动端 Touch 滑动反弹
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​决定德拉瓦州地区版图的关键历史事件
  • #pragma once
  • #pragma pack(1)
  • (2)STL算法之元素计数
  • (2020)Java后端开发----(面试题和笔试题)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)大道至简,职场上做人做事做管理
  • (转)项目管理杂谈-我所期望的新人
  • .apk文件,IIS不支持下载解决
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET简谈设计模式之(单件模式)
  • /etc/sudoers (root权限管理)
  • @staticmethod和@classmethod的作用与区别
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [Android View] 可绘制形状 (Shape Xml)
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn