CMFCTOOLBAR添加组合框
来源:互联网 发布:耽美网络电视剧百度云 编辑:程序博客网 时间:2024/06/06 03:19
转载自:csdn不让我添加这个链接,对不住了
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);//update:这一段后来发现有内存泄露,改为不在堆上创建,CMFCToolBarComboBoxButton 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->工程名,找到工程名将其从注册表中删之。
//********************************************我是分割线*********************************************************//
妈蛋,这破玩意太难用了。搞了几天终于解决了。
关于如何设置ComboBox选项:
CMFCToolBarComboBoxButton* pSrcCombo = CMFCToolBarComboBoxButton::GetByCmd (IDR_COMBO_ZOOMRATIO);//注意后面括弧没有TRUE,有TRUE就不行
pSrcCombo->SelectItem(0);//上一句GetByCmd 后才行,直接SelectItem是不会改变的。
- CMFCTOOLBAR添加组合框
- CMFCToolBar插入组合框
- CMFCToolBar 添加下拉列表框
- VC中CMFCToolBar插入组合框
- VC2008在CMFCToolBar工具栏中加入组合框
- VC2008在CMFCToolBar工具栏中加入组合框
- VC++2010在CMFCToolBar工具栏中加入组合框
- CMFCToolBar 添加真彩图片
- 在CMFCToolbar中添加控件
- CMFCToolBar工具条添加下拉菜单按钮
- 动态创建CMFCToolbar并添加按钮
- c#动态添加组合框
- 在工具栏中添加组合框
- 对话框中添加组合框的应用
- 在工具栏中添加组合框
- mfc:工具栏中添加组合框
- CMFCToolBar::SetSizes
- CMFCToolBar::SetToolBarBtnText
- 求关键路径
- (同事分享) android高性能编程中需要注意的问题
- 面向对象概述
- 【好好学习】循环练习-随机生成三级菜单
- shell去重
- CMFCTOOLBAR添加组合框
- 数据、类型常规操作
- Ubuntu上改变openjdk版本
- 深入理解Javascript闭包概念
- cocos2dx 3.0学习笔记(一):Win32下-cocos2dx-3.0环境配置和创建项目
- android中ListView详解
- 朗朗上口的两幅对联
- PC上传脚本不成功的一种解决方法
- iOS 获取图片某一点的颜色对象(UIColor*)。