1.新建一个继承工具栏的类 CMyToolBar
在CMyToolBar.h
public:
CComboBox m_ComboBox; //增加组合框
2.在资源编辑器新增一个按钮
ID_TOOLCOMBO //IDR_NEWTOOLBAR中
3.在MainFrm.h
#include"MyToolBar.h" //添加头文件
4.CToolBar m_wndNewToolBar; 改为 CMyToolBar m_wndNewToolBar;
5.添加函数
BOOL CreateMyComboBar();
BOOL CMainFrame::CreateMyComboBar()
{
CRect rect;
int index=0;
while(m_wndNewToolBar.GetItemID(index)!=ID_TOOLCOMBO)
{
index++;
}
//将这个按钮变为可分离的,并取得位置
//下拉框在工具栏的位置
m_wndNewToolBar.SetButtonInfo(index,ID_TOOLCOMBO,TBBS_SEPARATOR,80);
//返回索引项的显示矩形
m_wndNewToolBar.GetItemRect(index,&rect);
rect.bottom+=150; //使下拉框拽开
if(!m_wndNewToolBar.m_ComboBox.Create(CBS_DROPDOWNLIST|WS_VISIBLE|
WS_TABSTOP|CBS_AUTOHSCROLL,
rect,&m_wndNewToolBar,ID_TOOLCOMBO))
//参数是风格,位置,父窗口,ID
{
TRACE0("未能创建组合框\n");
return FALSE;
}
m_wndNewToolBar.m_ComboBox.AddString("100%");
m_wndNewToolBar.m_ComboBox.AddString("150%");
m_wndNewToolBar.m_ComboBox.AddString("50%");
m_wndNewToolBar.m_ComboBox.SetCurSel(0);
m_wndNewToolBar.m_ComboBox.ShowWindow(SW_SHOW);
return TRUE;
}
6.在 CMainFrame::OnCreate函数添加
if(!CreateMyComboBar())
{
TRACE0("Failed to create ComboBox\n");
return -1;
}
7.添加组合框的改变处理事件
在****View.cpp 中添加组合框消息映射
#include"MainFrm.h" //头文件
ON_CBN_SELCHANGE(ID_TOOLCOMBO,OnSelchangeCombo)
afx_msg void OnSelchangeCombo();
void CVectorView::OnSelchangeCombo()
{
CString mess;
int CurSel;
CMainFrame* MFrame=(CMainFrame *)AfxGetMainWnd();
CurSel = MFrame->m_wndNewToolBar.m_ComboBox.GetCurSel();
mess = "您选择了第 ";
char No[2];
itoa(CurSel,No,10);
mess += No;
mess += " 项!";
MessageBox(mess, "消息框",MB_OK | MB_ICONINFORMATION);
}