利用MFC编程在工具条中增加组合框控件

我们知道,Visual C++所提供的标准工具条中基本上只有一些简单的诸如文档打开、存储以及一些编辑功能按钮,而Visual C++自身的工具条功能十分丰富,尤其是工具条中内嵌的组合框控件十分方便。实际上利用MFC编程在工具条中增加一些有趣的控件还是比较容易的,下面我们就谈谈如何利用MFC编程在工具条中增加组合框控件。


1. 创建AppWizard工程文件设为toolbar,采用系统缺省设置。 

2. 打开资源编辑器,选择工具条,在工具条中增加一个按钮,设置按钮 I D 为 I D_MY_COMBO_BOX 。 移动该按钮以使按钮处于适当的位置。 

3. 从 C ToolBar 派 生出一个新类 C MyToolBar , 在 C MyToolBar 类 中增加一个成员变量 m_wndMyComboBox , 代码如下: 

class CMyToolBar : public CToolBar
{
public:
   CComboBox m_wndMyComboBox;
};  

注意要将代码放在工程文件mainframe.h中“#endif // _MSC_VER > 1000”语句之后,类CMainFrame定义之前。 

4. 将工程文件mainframe.h中的CToolBar变量m_wndToolBar用CMyToolBar变量m_wndToolBar代替。同时增加函数CreateMyComboToolBar()声明。代码如下: 

protected:

                // control bar embedded members

           CStatusBar m_wndStatusBar;
       CMyToolBar m_wndToolBar;
       int CreateMyComboToolBar();

5. 在工程文件mainframe.cpp中的OnCreate()函数返回语句之前调用函数CreateMyComboToolBar();代码如下所示: 

  if(!CreateMyComboToolBar())

    MessageBox("Create My Combo ToolBar Failure");

6. 以文本方式打开资源头文件resource.h,增加一个控制ID如下,注意该控制的ID值不要与其它控制或资源的ID值重复: 

      #define  IDC_MY_COMBO 1111

7. 在工程文件mainframe.cpp中增加函数CreateMyComboToolBar();代码如下: 

int MainFrame::CreateMyComboToolBar()
{
#define COMBO_BOX_WIDTH 80 //the width of the combo box
 //set up the ComboBox control as a select box
//First get the index of the button's position in the toolbar
int index = 0;
CRecr rect;
while(m_wndToolBar.GetItemID(index) != ID_MY_COMBO_BOX) index++;
//next convert that button to a seperator and get its position
m_wndToolBar.SetButtonInfo(index, ID_MY_COMBO_BOX, TBBS_SEPARATOR, COMBO_BOX_WIDTH);
m_wndToolBar.GetItemRect(index, &rect);
//expand the rectangle to allow the combo box room to drop down
rect.top+=2;
    rect.bottom += 200;
    // then .Create the combo box and show it
    if (!m_wndToolBar.m_ wndMyComboBox.Create(
        WS_CHILD|WS_VISIBLE | CBS_AUTOHSCROLL | 
        CBS_DROPDOWNLIST | CBS_HASSTRINGS ,
        rect, &m_wndToolBar, IDC_MY_COMBO))
    {
        TRACE0("Failed to create combo-box\n");
        return FALSE;
    }
    m_wndToolBar.m_wndMyComboBox.ShowWindow(SW_SHOW);
    //adding string to the combo box

    m_wndToolBar.m_wndMyComboBox.AddString("Fisrt Select");
    m_wndToolBar.m_wndMyComboBox.AddString("Second Select");
    m_wndToolBar.m_wndMyComboBox.AddString("Third Select");
    m_wndToolBar.m_wndMyComboBox.AddString("Fourth Select");
    m_wndToolBar.m_wndMyComboBox.AddString("Fifth Select");
    m_wndToolBar.m_wndMyComboBox.SetCurSel(0);
}


编译并运行该应用,就会发现工具条中多了一个组合框控件。 从上面的例程可以看出,在工具条中增加新的控件,关键在于重写主框架的OnCreate()函数。掌握了这一点,就可以在工具条中增加各种各样的控件了,如增加无限输入(Radio)控件、检查框(Check)控件等。有兴趣的读者可以自己去尝试一下加深理解。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS2010之MFC入门到精通教程的pdf,共306页 ,10大章节,55小节。完整有图版 第一部分:VS2010/MFC 开发环境 VS2010/MFC 编程入门之前言 VS2010/MFC 编程入门之一(VS2010 与MSDN 安装过程图解) 第二部分:VS2010/MFC 应用程序架 VS2010/MFC 编程入门之二(利用MFC 向导生成单文档应用程序架) VS2010/MFC 编程入门之三(VS2010 应用程序工程文件的组成结构) VS2010/MFC 编程入门之四(MFC 应用程序架分析) VS2010/MFC 编程入门之五(MFC 消息映射机制概述) 第三部分:对话 VS2010/MFC 编程入门之六(对话:创建对话模板和修改对话属性) VS2010/MFC 编程入门之七(对话:为对话添加控件) VS2010/MFC 编程入门之八(对话:创建对话类和添加控件变量) VS2010/MFC 编程入门之九(对话:为控件添加消息处理函数) VS2010/MFC 编程入门之十(对话:设置对话控件的Tab 顺序) VS2010/MFC 编程入门之十一(对话:模态对话及其弹出过程) VS2010/MFC 编程入门之十二(对话:非模态对话的创建及显示) VS2010/MFC 编程入门之十三(对话:属性页对话及相关类的介绍) VS2010/MFC 编程入门之十四(对话:向导对话的创建及显示) VS2010/MFC 编程入门之十五(对话:一般属性页对话的创建及显示) VS2010/MFC 编程入门之十六(对话:消息对话) VS2010/MFC 编程入门之十七(对话:文件对话) VS2010/MFC 编程入门之十八(对话:字体对话) VS2010/MFC 编程入门之十九(对话:颜色对话) 第四部分:常用控件 VS2010/MFC 编程入门之二十(常用控件:静态文本) VS2010/MFC 编程入门之二十一(常用控件:编辑Edit Control) VS2010/MFC 编程入门之二十二(常用控件:按钮控件Button、Radio Button 和Check Box) VS2010/MFC 编程入门之二十三(常用控件:按钮控件编程实例) VS2010/MFC 编程入门之二十四(常用控件:列表控件ListBox) VS2010/MFC 编程入门之二十五(常用控件组合控件Combo Box) VS2010/MFC 编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC 编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC 编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC 编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC 编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC 编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC 编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC 编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC 编程入门之三十四(菜单:VS2010 菜单资源详解) VS2010/MFC 编程入门之三十五(菜单:菜单及CMenu 类的使用) VS2010/MFC 编程入门之三十六(工具栏工具栏资源及CToolBar 类) VS2010/MFC 编程入门之三十七(工具栏工具栏的创建、停靠与使用) VS2010/MFC 编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和架 VS2010/MFC 编程入门之三十九(文档、视图和架:概述) VS2010/MFC 编程入门之四十(文档、视图和架:各对象之间的关系) VS2010/MFC 编程入门之四十一(文档、视图和架:分割窗口) 第七部分:MFC 常用类 VS2010/MFC 编程入门之四十二(MFC 常用类:CString 类) VS2010/MFC 编程入门之四十三(MFC 常用类:CTime 类和CTimeSpan 类) VS2010/MFC 编程入门之四十四(MFC 常用类:定时器Timer) VS2010/MFC 编程入门之四十五(MFC 常用类:CFile 文件操作类) VS2010/MFC 编程入门之四十六(MFC 常用类:MFC 异常处理) 第八部分:字体和文本输出 VS2010/MFC 编程入门之四十七(字体和文本输出:CFont 字体类) VS2010/MFC 编程入门之四十八(字体和文本输出:文本输出) 第九部分:图形图像 VS2010/MFC 编程入门之四十九(图形图像:CDC 类及其屏幕绘图函数) VS2010/MFC 编程入门之五十(图形图像:GDI 对象之画笔CPen) VS2010/MFC 编程入门之五十一(图形图像:GDI 对象之画刷CBrush) 第十部分:Ribbon 界面开发 VS2010/MFC 编程入门之五十二(Ribbon 界面开发:创建Ribbon 样式的应用程序架) VS2010/MFC 编程入门之五十三(Ribbon 界面开发:为Ribbon Bar 添加控件) VS2010/MFC 编程入门之五十四(Ribbon 界面开发:使用更多控件并为控件添加消息处理函数)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值