刚在CSDN博客上面看到一篇文章,讲解VS2008中的新类CMFCToolBar的使用, 其中有个关于插入组合框的部分居然要修改MFC的源代码,  文章链接 http://blog.csdn.net/chenjelly/article/details/6718478

这里贴出正确的插入方法:

1. MainFrm.h, 声明变量

CMFCToolBarComboBoxButton  *m_comboAddress;

2. MainFrm.cpp, 在OnCreate函数中创建工具条并且插入一个组合框

if (!m_wndToolBar.CreateEx (this, TBSTYLE_FLAT,CBRS_SIZE_FIXED | AFX_DEFAULT_TOOLBAR_STYLE) ||!m_wndToolBar.LoadToolBar (IDR_MAINFRAME, uiToolbarColdID, uiMenuID, FALSE /* Not locked */, uiToolbarDisID, 0, uiToolbarHotID, uiToolbarPresID)){TRACE0("Failed to create toolbar\n");return -1;      // fail to create}//插入组合框m_wndToolBar.InsertButton (CMFCToolBarComboBoxButton(ID_GO_ADDRESS_EDIT, 0), 3);//设置组合框属性m_comboAddress = (CMFCToolBarComboBoxButton*)m_wndToolBar.GetButton(3);m_comboAddress->EnableWindow(TRUE);m_comboAddress->SetCenterVert();m_comboAddress->SetDropDownHeight(100);//设置下拉列表的高度m_comboAddress->SetFlatMode();//添加内容m_comboAddress->AddItem(_T("once"));m_comboAddress->AddItem(_T("if only"));m_comboAddress->AddItem(_T("P.S.I Love You"));m_comboAddress->AddItem(_T("Love Me If You Dare"));m_comboAddress->SelectItem(0);          //默认选中DockPane (&m_wndToolBar);

另外的就是网上找的一篇文章了

VC2008在CMFCToolBar工具栏中加入组合框

如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的:

To add a combo box button to a toolbar, follow these steps:

1. Reserve a dummy resource ID for the button in the parent toolbar resource.

2. Construct a CMFCToolBarComboBoxButton object.

3. In the message handler that processes the AFX_WM_RESETTOOLBAR message, replace the dummy button with the new combo box button by using CMFCToolBar::ReplaceButton.

具体过程如下:

1.在工具栏资源编辑器中加入id为IDR_COM的空白工具栏,

2.在头文件中定义组合框

CMFCToolBarComboBoxButton* m_ComboButton;

3.BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)中添加消息响应

ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset)

在头文件中声明消息函数:

afx_msg LRESULT OnToolbarReset(WPARAM,LPARAM);

在CMainFram中定义处理函数:

LRESULT CMainFrame::OnToolbarReset(WPARAM wp,LPARAM lp)
{      
     m_ComboButton = new CMFCToolBarComboBoxButton(IDR_COM,GetCmdMgr ()->GetCmdImage (IDR_COM, FALSE));

m_ComboButton->EnableWindow(true);
     m_ComboButton->SetCenterVert();
     m_ComboButton->SetDropDownHeight(25);
     m_ComboButton->SetFlatMode();
     m_ComboButton->AddItem(_T("OPTION1"));
     m_ComboButton->AddItem(_T("OPTION2"));
     m_ComboButton->SelectItem(0); 
     m_wndToolBar.ReplaceButton (IDR_COM, *m_ComboButton);
 return 0;
}

2、添加组合框的事件消息响应函数

消息映射:

ON_COMMAND(IDR_COM, &CMainFrame::OnClickComboBox)
 ON_CBN_SELCHANGE(IDR_COM,&CMainFrame::OnSelChangeClick)//别忘了在TOOLBAR中添加IDR_COM资源。

消息声明:

afx_msg void OnSelChangeClick();
 afx_msg void OnClickComboBox();

消息处理函数:

void CMainFrame::OnSelChangeClick()
{
 CMFCToolBarComboBoxButton* pSrcCombo = CMFCToolBarComboBoxButton::GetByCmd (IDR_COM, TRUE);
 int index = m_ComboButton->GetCurSel();
 index = pSrcCombo->GetCurSel();
 CString str = pSrcCombo->GetItem(index);
}

void CMainFrame::OnClickComboBox()
{

}

(注意:一定要GetByCmd;OnClickComboBox没有做任何处理,但是如果去掉的话,组合框将编程灰色,无法使用)。

注:更新工具栏:

1.工具栏的右侧向下的小箭头->添加或删除按钮->标准->重置工具栏

2.运行regedit打开注册表->HKEY_CURRENT_USER->Software->工程名,找到工程名将其从注册表中删之。

CMFCToolBar插入组合框相关推荐

  1. 数据可视化技能之组合框完成动态图表

    本文章涉及内容: 1.反选 2.使用控件,完成动态图表 开发者模式显示控件 使用组合框+offset+名称构造动态图表 使用列表框+辅助表格构造动态图表 使用复选框构建动态图表 如图所示:最终实现的效 ...

  2. java 组合框_Java知多少(88)列表和组合框

    列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文 ...

  3. 向工作表中添加列表框或组合框

    http://office.microsoft.com/zh-cn/excel-help/HP010236681.aspx 添加列表框(表单控件) 如果"开发工具"选项卡未显示,请 ...

  4. MFC控件编程之组合框跟列表框

    MFC控件编程之组合框跟列表框 一丶简介 如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的. 二丶组合框列表框常用的方法 AddString(字符串) 添 ...

  5. 易语言写组合框内容MySQL_易语言组合框赋值的几种方法

    在易语言中,给组合框赋值就是给组合框加上许多项目,这些项目我们可以通过编写源代码的时候就事先修改设置好它,同样我们也可以通过后期使用时让代码来修改它,今天就教大家事先给组合框赋值和事后给组合框赋值的两 ...

  6. excel 表做下拉框_Excel工作表的组合框下拉列表

    excel 表做下拉框 Would you prefer a bigger font size for items in a data validation drop down list? Would ...

  7. 【MFC】学习笔记:常用控件之组合框(Combo Box)

    01.目录 目录 01.目录 02.控件介绍 03.控件的消息通知函数 04.创建组合框控件及成员函数介绍 4.1 组合框的创建 4.2 CComboBox类的主要成员函数 05.应用实例 06.总结 ...

  8. 组合框控件Combo Box和CComboBox类

    本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件.它为我们的日常操作提供了很多方便. ...

  9. Combo Box (组合框)控件的使用方法

    Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本 ...

最新文章

  1. oracle运行企业管理器,如何打开Oracle 10g的企业管理器(Enterprise Manager)?
  2. 自动化配置和部署工具--puppet(1)--什么是puppet
  3. java中的标识符和关键字_浅谈java中的标识符、修饰符和关键字
  4. JPA(一):十分钟入门 JPA
  5. SPOJ 4564 Chop Ahoy! Revisited!
  6. python for 循环每次取n个数据(亲测)
  7. 计算机应用等级考试1,计算机等级考试一级试题
  8. Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
  9. C语言之字符串探究(二):字符串原生操作——strlen、strcat、strcpy、strcmp自实现
  10. Git添加多个SSH key公钥
  11. python new init_python的new与init
  12. 用ASP为blog程序编写Trackback功能 - 小李刀刀(转载)
  13. git学习笔记(1-集中式与分布式版本控制工具对比)
  14. cad2008加载 et拓展工具_CAD设计师的工具,55款实用插件,收藏起来
  15. AD555计算机辅助设计,震旦Aurora AD555 驱动
  16. h2o api java_h2o 准备
  17. [jquery] 动画 show hide toggle,下拉显示---slideDown,淡入淡出----fadeIn, animate() ,停止动画---stop,finish
  18. DoubanFm之设计模式(一)
  19. 在Android中绘制圆角矩形图片
  20. 爬虫03 —— 正则表达式

热门文章

  1. 9路棋盘java代码_Java ServiceContext类代码示例
  2. Hibernate连接数据库
  3. linux搭建springBoot环境,SpringBoot Linux服务化部署
  4. 阿里妈妈技术团队5篇论文入选 SIGIR 2022!
  5. 锁定计算机.exe,一键锁定计算机的方法
  6. 计算机图形学二维变换知识点,计算机图形学 二维变换及二维.ppt
  7. jsp中两个double相乘_图像处理中的代数运算及几何变换
  8. 【算法竞赛学习】气象海洋预测-Task4 模型建立之 TCNN+RNN
  9. Java学习笔记_多态/内部类
  10. linux怎样用命令提示符,Linux用户必知:一分钟掌握14个常用Linux命令行快捷键