CMFCToolBar插入组合框
刚在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.反选 2.使用控件,完成动态图表 开发者模式显示控件 使用组合框+offset+名称构造动态图表 使用列表框+辅助表格构造动态图表 使用复选框构建动态图表 如图所示:最终实现的效 ...
- java 组合框_Java知多少(88)列表和组合框
列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文 ...
- 向工作表中添加列表框或组合框
http://office.microsoft.com/zh-cn/excel-help/HP010236681.aspx 添加列表框(表单控件) 如果"开发工具"选项卡未显示,请 ...
- MFC控件编程之组合框跟列表框
MFC控件编程之组合框跟列表框 一丶简介 如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的. 二丶组合框列表框常用的方法 AddString(字符串) 添 ...
- 易语言写组合框内容MySQL_易语言组合框赋值的几种方法
在易语言中,给组合框赋值就是给组合框加上许多项目,这些项目我们可以通过编写源代码的时候就事先修改设置好它,同样我们也可以通过后期使用时让代码来修改它,今天就教大家事先给组合框赋值和事后给组合框赋值的两 ...
- excel 表做下拉框_Excel工作表的组合框下拉列表
excel 表做下拉框 Would you prefer a bigger font size for items in a data validation drop down list? Would ...
- 【MFC】学习笔记:常用控件之组合框(Combo Box)
01.目录 目录 01.目录 02.控件介绍 03.控件的消息通知函数 04.创建组合框控件及成员函数介绍 4.1 组合框的创建 4.2 CComboBox类的主要成员函数 05.应用实例 06.总结 ...
- 组合框控件Combo Box和CComboBox类
本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件.它为我们的日常操作提供了很多方便. ...
- Combo Box (组合框)控件的使用方法
Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本 ...
最新文章
- oracle运行企业管理器,如何打开Oracle 10g的企业管理器(Enterprise Manager)?
- 自动化配置和部署工具--puppet(1)--什么是puppet
- java中的标识符和关键字_浅谈java中的标识符、修饰符和关键字
- JPA(一):十分钟入门 JPA
- SPOJ 4564 Chop Ahoy! Revisited!
- python for 循环每次取n个数据(亲测)
- 计算机应用等级考试1,计算机等级考试一级试题
- Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
- C语言之字符串探究(二):字符串原生操作——strlen、strcat、strcpy、strcmp自实现
- Git添加多个SSH key公钥
- python new init_python的new与init
- 用ASP为blog程序编写Trackback功能 - 小李刀刀(转载)
- git学习笔记(1-集中式与分布式版本控制工具对比)
- cad2008加载 et拓展工具_CAD设计师的工具,55款实用插件,收藏起来
- AD555计算机辅助设计,震旦Aurora AD555 驱动
- h2o api java_h2o 准备
- [jquery] 动画 show hide toggle,下拉显示---slideDown,淡入淡出----fadeIn, animate() ,停止动画---stop,finish
- DoubanFm之设计模式(一)
- 在Android中绘制圆角矩形图片
- 爬虫03 —— 正则表达式
热门文章
- 9路棋盘java代码_Java ServiceContext类代码示例
- Hibernate连接数据库
- linux搭建springBoot环境,SpringBoot Linux服务化部署
- 阿里妈妈技术团队5篇论文入选 SIGIR 2022!
- 锁定计算机.exe,一键锁定计算机的方法
- 计算机图形学二维变换知识点,计算机图形学 二维变换及二维.ppt
- jsp中两个double相乘_图像处理中的代数运算及几何变换
- 【算法竞赛学习】气象海洋预测-Task4 模型建立之 TCNN+RNN
- Java学习笔记_多态/内部类
- linux怎样用命令提示符,Linux用户必知:一分钟掌握14个常用Linux命令行快捷键