VC MFC在CMFCToolBar工具栏中加入组合框
如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的:
要增加一个组合框,需要完成以下步骤:
1.在工具栏资源中,增加一个对应ID资源号的按钮.
2.在主框架(mainframe.h)文件中,添加一个 CMFCToolBarComboBoxButton 类的变量 :
CMFCToolBarComboBoxButton* m_ComboButton;
3.添加消息处理函数,来处理来自于 AFX_WM_RESETTOOLBAR 的消息,在这个消息里使用 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
这个函数是为了响应对应的操作.
消息声明:
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->工程名,找到工程名将其从注册表中删之。
VC MFC在CMFCToolBar工具栏中加入组合框的更多相关文章
- MFC编程入门之二十五(常用控件:组合框控件ComboBox)
上一节讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框 ...
- 【转】VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)
原文网址:http://www.jizhuomi.com/software/189.html 上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常 ...
- VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)
上一节鸡啄米讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是 ...
- 第三十四章、PyQt中的输入部件:QComboBox组合框功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 Designer中输入工具部件中的Combo Box组合框与 ...
- Combo Box (组合框)控件的使用方法
Combo Box (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本 ...
- (七)对话框,单选框(radiobox),复选框(checkbox),列表框(ListBox),组合框(CComboBox),水平滚动条(Horizontal scroll bar),微调(旋转)spincontrol,列表视图控件CListCtrl,静态控件static
1,模态对话框和非模态对话框 // 模态对话框 void CMainFrame::OnDialogExec() { // TODO: 在此添加命令处理程序代码 // 创建对话框对象 CDialog d ...
- 组合框控件 -- CComboBox
组合框控件 -- CComboBox 组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框.下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框 ...
- combox组合框设置高度
组合框设置高度 转载 2013年10月24日 22:54:03 1033 MFC进行界面编程时,组合框CComboBox控件在可视化设计组件的时候是无法进行高度编辑的,但是我们在实际的项目中经常需要定 ...
- VS2010-MFC(常用控件:组合框控件Combo Box)
转自:http://www.jizhuomi.com/software/189.html 上一节讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如, ...
随机推荐
- Android:给ViewPager添加切换效果
原文参照开发者官网:http://developer.android.com/training/animation/screen-slide.html#viewpager 以App的引导页为例: 首先 ...
- bootstrap-5
代码(一) 在bootstrap中主要提供了三种代码风格:详见688行-730行 1.使用<code></code>来显示单行内联代码 2.使用<pre></ ...
- ODOO从哪里开始??OpenERP的第一根线头儿
Windows下ODOO源码启动: python odoo-bin -w odoo -r odoo --addons-path=addons,../mymodules --db-filter=mydb ...
- SQLite语句练习题
1. 查询Student表中的所有记录的Sname.Ssex和Class列. 2. 查询教师所有的单位即不重复的Depart列. 3. 查询Student表的所有记录. 4. 查询Score表中成绩在 ...
- java的读文件操作
java读取文件内容,可以作如下理解: 首先获得一个文件句柄,File file = new File():file即为文件句柄.两人之间联通电话网络了,就可以开始打电话了. 通过这条线路读取甲方的信 ...
- SQL阻塞原因造成系统多功能无响应的分析解决思路
最近遇到一个sqlserver项目,月底会出现多个财务相关功能出现不定期操作无响应问题 通过查询SQL阻塞信息,定位到阻塞源头spid.该会话的状态.等待事件及执行的SQL脚本 根据spid查询该会话 ...
- Visual.Studio.2013.IDE+visual.studio.15.preview5 编译器
硬盘版Visual.Studio.2013.IDE + visual.studio.15.preview5 编译器 使用前注意以下事项: 1.右键-管理员权限安装,VS15补丁.exe,补丁是VS15 ...
- TMS320C54x系列DSP指令和编程指南——第1章 汇编语言工具概述
第1章 汇编语言工具概述 TMS320C54x DSP的汇编语言开发工具包括: ■ Assembler ■ Archiver ■ Linker ■ Absolut ...
- Drools给日志打标签
一.定义日志模型 public class Logger { // 日志编号 private String id; // 目标IP private String targetIp; // 目标端口 p ...
- iOS NSNotification的使用
如果在一个类中想要执行另一个类中的方法可以使用通知 1.创建一个通知对象:使用notificationWithName:object: 或者 notificationWithName:object:u ...