当前位置:网站首页>MFC界面开发帮助文档——BCG如何在工具栏上放置控件
MFC界面开发帮助文档——BCG如何在工具栏上放置控件
2020-11-10 10:51:00 【FILA6666】
BCGControlBar ("Business Components Gallery ControlBar")是MFC扩展库,使您可以创建具有完全自定义选项(功能区、可自定义工具栏、菜单等)以及一组专业设计的丰富Microsoft Office和Microsoft Visual Studio的应用程序 GUI控件,例如图表、日历、网格、编辑器、甘特图和许多其他控件。
BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。
本文将为大家介绍如何在工具栏上放置各种控件,如组合框或编辑框。
例如,您要创建一个"Find" 组合框,该组合框出现在工具栏上并包含最近使用的搜索字符串。用户将能够在组合框编辑控件中输入字符串,然后按Enter键来搜索文档,或者按Escape键将焦点返回到主框架,该文档显示在CEditView - derived视图中。
以下步骤是"setup" 工作,处理组合框按钮的创建及其命令的处理:
1. 打开应用程序资源,将带有ID_EDIT_FIND命令ID的新按钮添加到所需的(IDR_MAINFRAME)工具栏,并创建具有相同ID的新菜单项。 使用ID_EDIT_FIND_COMBO命令ID将新字符串“ Find the text \ nFind”添加到字符串表中,该ID将用作find组合框按钮的命令ID。 注意ID_EDIT_FIND是CEditView处理的标准命令,因此您不需要为此命令实现特殊的处理程序,但是需要为ID_EDIT_FIND_COMBO命令实现处理程序。
2. 从CBCGPComboBox类派生一个类,我们将其命名为CFindComboBox。
3. 在CFindComboBox类中,重写PreTranslateMessage虚拟成员函数,这将使您可以首先处理WM_KEYDOWN消息并采取适当的措施。 当用户按下退出键(VK_ESCAPE)时,将焦点返回到主框架窗口。 当用户按下Enter键(VK_ENTER)时,将带有ID_EDIT_FIND_COMBO命令ID的WM_COMMAND消息发布到主框架窗口(该命令将被路由到视图)。
4. 从CBCGPToolbarComboBoxButton类派生一个类,我们将其命名为CFindComboButton。
5. CBCGPToolbarComboBoxButton的构造函数采用三个参数:按钮命令ID、按钮图像的所有和组合框样式,您应该将ID_EDIT_FIND_COMBO作为命令ID传递,并且可以将CImageHash :: GetImageOfCommand与ID_EDIT_FIND一起使用来获取图像索引。
6. 重写CBCGPToolbarComboBoxButton :: CreateCombo成员函数,在这里您应该创建CFindComboBox对象并返回指向它的指针。
7. 使用IMPLEMENT_SERIAL宏使组合按钮持久,工作区管理器会自动在Windows注册表中加载和保存按钮的状态。
8. 在您的视图中实现ID_EDIT_FIND_COMBO处理程序,使用带有ID_EDIT_FIND_COMBO ID的 CBCGPToolBar::GetCommandButtons 可以检索所有"Find"组合框按钮,由于自定义,它可以是具有相同命令ID的组合框按钮的多个副本。
9. 使用CBCGPToolBar::IsLastCommandFromButton来确定是否从我们的组合框按钮发送了 "Find"命令,如何是这样请查找文本并将搜索字符串添加到组合框中。
您应该执行以下步骤,将find组合框按钮放到工具栏上:
1. 在主框架窗口中实现BCGM_RESETTOOLBAR消息处理程序(OnToolbarReset),注意当工具栏已初始化(在应用程序启动时),或者在自定义期间重置了工具栏时,该消息就会由框架发送到主框架窗口。 无论哪种情况,都需要用 "custom" find 组合框按钮替换标准的工具栏按钮(请参阅步骤2)。
2. 在OnToolbarReset处理程序中,分析工具栏的ID(它是BCGM_RESETTOOLBAR 消息的WPARAM)。 遇到IDR_MAINFRAME工具栏时,只需使用ID_EDIT_FIND和对CFindComboButton对象的引用调用CBCGPToolBar::ReplaceButton。 注意您可以在堆栈上构造CFindComboButton对象,因为ReplaceButton复制按钮对象并维护副本。
3. 如果启用自定义,则实现 "customize"处理程序(OnViewCustomize)并创建CBCGPToolbarCustomize对话框,您必须使用ID_EDIT_FIND和对CFindComboButton对象的引用来调用 CBCGPToolbarCustomize::ReplaceButton 。 注意自定义对话框包含带有"Commands"列表框的"Commands"页面,用户可以将命令拖放在工具栏上。默认情况下,自定义对话框处理应用程序菜单并为每个类别构建标准工具栏按钮的列表。 如果在需要时不使用CBCGPToolbarButton - derived按钮替换标准工具栏按钮,则将失去派生对象提供的扩展功能。
如果您对BCGSoft的产品感兴趣,也可直接咨询“在线客服”!
版权声明
本文为[FILA6666]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/3992677/blog/4710709
边栏推荐
- 【技术教程】C#控制台调用FFMPEG推MP4视频文件至流媒体开源服务平台EasyDarwin过程
- Key layout of the Central Government: in the next five years, self-reliance and self-improvement of science and technology will be the priority, and these industries will be named
- 微服务授权应该怎么做?
- 【iOS】苹果登录Sign in with Apple
- 不用懂代码,会打字就可以建站?1111 元礼包帮你一站配齐!
- LeetCode 5561. 获取生成数组中的最大值
- csdn bug11:待加
- 浅谈字节最新开源联邦机器学习平台Fedlearner
- 《Python Cookbook 3rd》笔记(2.4):字符串匹配和搜索
- ASP.NET Core框架揭秘[博文汇总
猜你喜欢

python math类

基于FPGA的MCP4725驱动程序

What does the mremote variable in servicemanagerproxy refer to?

Overview of the most complete anomaly detection algorithm in history

用例子理解递归
![[operation tutorial] introduction and opening steps of easygbs subscription function of national standard gb28181 protocol security video platform](/img/3b/00bc81122d330c9d59909994e61027.jpg)
[operation tutorial] introduction and opening steps of easygbs subscription function of national standard gb28181 protocol security video platform

C + + STL container

分布式文档存储数据库之MongoDB索引管理

CSDN bug9: to be added

世界上最伟大的10个公式,其中一个人尽皆知
随机推荐
CCR炒币机器人:新冠肺炎加速了监管机构对CBDC的兴趣
Connection to XXX could not be established. Broker may not be available
Promote China manufacturing upgrade, 3D visualization of production line in automobile assembly workshop
layer.prompt(options, yes) - 输入层
[论文阅读笔记] Large-Scale Heterogeneous Feature Embedding
Learning from scratch YoMo series: Opening
csdn bug7:待加
CSDN bug8: to be added
After seven years of pursuing, nearly one billion US dollars of bitcoin was eventually confiscated and confiscated by the US government
完美日记母公司逸仙电商招股书:重营销、轻研发,前三季度亏11亿
[论文阅读笔记] RoSANE, Robust and scalable attributed network embedding for sparse networks
CSDN bug6: to be added
港股上市公司移卡收购创信众42.5%股权 谋划加快营销服务布局
csdn bug1:待加
从零开始学习 YoMo 系列教程:开篇
图-无向图
CSDN bug4: to be added
csdn bug9:待加
高通骁龙875夺安卓处理器桂冠,但外挂5G基带成为它的弊病
js 基础算法题(一)