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命令实现处理程序。 3. 在CFindComboBox类中,重写PreTranslateMessage虚拟成员函数,这将使您可以首先处理WM_KEYDOWN消息并采取适当的措施。 当用户按下退出键(VK_ESCAPE)时,将焦点返回到主框架窗口。 当用户按下Enter键(VK_ENTER)时,将带有ID_EDIT_FIND_COMBO命令ID的WM_COMMAND消息发布到主框架窗口(该命令将被路由到视图)。 5. CBCGPToolbarComboBoxButton的构造函数采用三个参数:按钮命令ID、按钮图像的所有和组合框样式,您应该将ID_EDIT_FIND_COMBO作为命令ID传递,并且可以将CImageHash :: GetImageOfCommand与ID_EDIT_FIND一起使用来获取图像索引。 6. 重写CBCGPToolbarComboBoxButton :: CreateCombo成员函数,在这里您应该创建CFindComboBox对象并返回指向它的指针。 7. 使用IMPLEMENT_SERIAL宏使组合按钮持久,工作区管理器会自动在Windows注册表中加载和保存按钮的状态。 您应该执行以下步骤,将find组合框按钮放到工具栏上: 1. 在主框架窗口中实现BCGM_RESETTOOLBAR消息处理程序(OnToolbarReset),注意当工具栏已初始化(在应用程序启动时),或者在自定义期间重置了工具栏时,该消息就会由框架发送到主框架窗口。 无论哪种情况,都需要用 "custom" find 组合框按钮替换标准的工具栏按钮(请参阅步骤2)。 如果您对BCGSoft的产品感兴趣,也可直接咨询“在线客服”!
|