mfc中的图象保存_MFC界面开发帮助文档——BCG如何在工具栏上放置控件

BCGControlBar ("Business Components Gallery ControlBar")是MFC扩展库,使您可以创建具有完全自定义选项(功能区、可自定义工具栏、菜单等)以及一组专业设计的丰富Microsoft Office和Microsoft Visual Studio的应用程序 GUI控件,例如图表、日历、网格、编辑器、甘特图和许多其他控件。

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。

点击“了解更多”获取BCGControlBar Pro for MFC v30.6正式版下载

本文将为大家介绍如何在工具栏上放置各种控件,如组合框或编辑框。

例如,您要创建一个"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按钮替换标准工具栏按钮,则将失去派生对象提供的扩展功能。

0c04f1c3e15cfd38b0c3f1253c9f6f60.png
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p> <span style="font-size:14px;color:#E53333;">限时福利1:</span><span style="font-size:14px;">购课进答疑群专享柳峰(刘运强)老师答疑服务</span> </p> <p> <br /> </p> <p> <br /> </p> <p> <span style="font-size:14px;"></span> </p> <p> <span style="font-size:14px;color:#337FE5;"><strong>为什么需要掌握高性能MySQL实战?</strong></span> </p> <p> <span><span style="font-size:14px;"><br /> </span></span> <span style="font-size:14px;">由于互联网产品用户量大、高并发请求场景多,因此对MySQL性能、可用性、扩展性都提出了很高要求。使用MySQL解决大量数据以及高并发请求已经是程序员必备技能,也是衡量一个程序员能力和薪资标准之一。</span> </p> <p> <br /> </p> <p> <span style="font-size:14px;">为了让大家快速系统了解高性能MySQL核心知识全貌,我为你总结了</span><span style="font-size:14px;">「高性能 MySQL 知识框架图」</span><span style="font-size:14px;">,帮你梳理学习重点,建议收藏!</span> </p> <p> <br /> </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202006031401338860.png" /> </p> <p> <br /> </p> <p> <span style="font-size:14px;color:#337FE5;"><strong>【课程设计】</strong></span> </p> <p> <span style="font-size:14px;"><br /> </span> </p> <p> <span style="font-size:14px;">课程分为四大篇章,为你建立完整 MySQL 知识体系,同时重点讲解 MySQL 底层运行原理、数据库性能调优、高并发、海量业务处理、面试解析等。</span> </p> <p> <span style="font-size:14px;"><br /> </span> </p> <p> <span style="font-size:14px;"></span> </p> <p style="text-align:justify;"> <span style="font-size:14px;"><strong>一、性能优化篇:</strong></span> </p> <p style="text-align:justify;"> <span style="font-size:14px;">主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 索引结构 B+Tree ,学员能够从根本弄懂为什么有些 SQL 走索引、有些走索引,从而彻底掌握索引使用和优化技巧,能够避开很多实战遇到“坑”。</span> </p> <p style="text-align:justify;"> <br /> </p> <p style="text-align:justify;"> <span style="font-size:14px;"><strong>二、MySQL 8.0新特性篇:</strong></span> </p> <p style="text-align:justify;"> <span style="font-size:14px;">主要包括窗口函数和通用表表达式。企业许多报表统计需求,如果采用窗口函数,用普通 SQL 语句是很难实现。</span> </p> <p style="text-align:justify;"> <br /> </p> <p style="text-align:justify;"> <span style="font-size:14px;"><strong>三、高性能架构篇:</strong></span> </p> <p style="text-align:justify;"> <span style="font-size:14px;">主要包括主从复制和读写分离。企业生产环境,很少采用台MySQL节点情况,因为一旦个节点发生故障,整个系统都可用,后果往往堪设想,因此掌握高可用架构实现是非常有必要。</span> </p> <p style="text-align:justify;"> <br /> </p> <p style="text-align:justify;"> <span style="font-size:14px;"><strong>四、面试篇:</strong></span> </p> <p style="text-align:justify;"> <span style="font-size:14px;">程序员获得工作第一步,就是高效准备面试,面试篇主要从知识点回顾总结角度出发,结合程序员面试高频MySQL问题精讲精练,帮助程序员吊打面试官,获得心仪工作机会。</span> </p>
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页