彩票走势图

在BCGControlBar中如何将控件添加到工具栏中

原创|其它|编辑:郝浩|2013-01-11 11:48:55.000|阅读 886 次

概述:本文介绍如何将不同的控件比如说如组合或编辑框添加到工具栏上。 比如说你想要创建一个“查找”框,让它出现在工具栏中,并包含最近使用的搜索字符串,使得用户可以在复合的编辑框中定义搜索字符串,然后可以点击回车键去通过文件搜索,或是点击退出键返回到主框架。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

本文将介绍在BCGControlBar中如何将不同的控件比如组合框或编辑框添加工具栏上。

>>BCGControlBar v19下载

比如你想要创建一个“查找”框,让它出现在工具栏中,并包含最近使用的搜索字符串,使得用户可以在复合的编辑框中定义搜索字符串,然后可以点击回车键去通过文件搜索,或是点击退出键返回到主框架,文件主要是用CEditView-derived视图进行显示。

下面是BCGControlBar进行设置的步骤,主要涉及到创建复合框按钮和命令的管理:

1、打开应用程序资源,添加一个新有着ID_EDIT_FIND命令ID的按钮到设计好的工具栏,同时用一样的ID名字创建一个新的菜单项目。添加一个新的有着ID_EDIT_FIND_COMBO命令ID的字符串“Find the text\nFind”到字符串表格,这个ID将会被作为查找复合框按钮的命令ID。

值得注意的是,这个ID_EDIT_FIND是CEditView处理的标准命令,所以你不需要对于这个命令实现一个特殊的处理程序,但是需要对ID_EDIT_FIND_COMBO命令实现一个处理程序。

2、CComboBox类中派生出一个类,命名为CFindComboBox。

3、在CFindComboBox类中覆盖PreTranslateMessage的虚拟成员函数,这样你就可以首先传递WM_KEYDOWN message,并采取以适当的行动。当用户点击退出键的时候,它必须返回到主架构窗口中。用户点击回车键的时候,它就必须把有着ID_EDIT_FIND_COMBO命令的ID的WM_COMMAND信息传递到主要架构窗口中。

4、CBCGPToolbarComboBoxButton类中派生出一个类,命名为CFindComboButton。

5、CBCGPToolbarComboBoxButton构造函数需要三个参数:按钮的命令ID和按钮的图像索引以及复合框风格。你可以通过将ID_EDIT_FIND_COMBO作为命令ID进行传递,也可以使用有着ID_EDIT_FIND的CImageHash::GetImageOfCommand来找到图像索引。

6、覆盖CBCGPToolbarComboBoxButton::CreateCombo成员函数,并创建CFindComboBox对象来返回使用它。

7、使用IMPLEMENT_SERIAL宏使得按钮更加的持久,Workspace管理器会自动加载和保存按钮的状态从或是到Windows注册表。

8、在你的视图中ID_EDIT_FIND_COMBO的处理器,使用有ID_EDIT_FIND_COMBO ID的CBCGPToolBar::GetCommandButtons来检索所有的查找命令按钮,由于是自定义的,它可以是有着一样ID的几个复制的复合框按钮。

9、使用CBCGPToolBar::IsLastCommandFromButton命令来决定是否查找命令从复合框按钮中发出,如果是,找到文本并添加搜索字符串到符合框。

下面是BCGControlBar将查找复合框按钮添加到工具栏的具体步骤:

1、在主框架窗口中实现BCGM_RESETTOOLBAR信息处理程序。值得注意的是,从框架中发出的到主要框架窗口中的信息已经被初始化了(在应用程序启动时),或是在自定义中被重置看。在这两种情况下,你需要替换有自定义查找复合框按钮的标准工具栏。

2、OnToolbarReset处理程序中分析工具栏的ID(WPARAM of the BCGM_RESETTOOLBAR的信息)。调用有着ID_EDIT_FIND的CBCGPToolBar::ReplaceButton就可以进入IDR_MAINFRAME工具栏,引用一个CFindComboButton对象。值得注意的是,你可以构建一个CFindComboButton对象,因为ReplaceButton复制了按钮对象和维护的副本。

3、如果启动定制,可以实现“自定义”的处理器( OnViewCustomize),并创建CBCGPToolbarCustomize对话框,你必须要调用CBCGPToolbarCustomize :: ReplaceButton ID_EDIT_FIND和参考CFindComboButton对象。

值得注意的是,自定义对话框中包含有着命令列框的命令页面。用户可以在工具栏中拖拽命令,在默认的情况下,自定义对话框处理应用程序菜单,对每个类构建标准的工具栏按钮列表。如果在需要的时候,你没有更换由 CBCGPToolbarButton 派生的标准工具栏按钮,你将会失去扩展功能派生出的对象。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP