0、首先到自己的工具条上新建一个控件,并命名新ID
1、拷贝FlatComboBox.h和FlatComboBox.cpp到工程目录下
2、建立新类 class CTrackerToolBar : public CToolBar
3、在新类中包含 FlatComboBox.h
4、新变量
public:
CFlatComboBox m_ComboTrackerMode;
5、修改原来自定义工具条变量:
修改前:
CToolBar m_wndTrackerBar;
修改后:
CTrackerToolBar m_wndTrackerBar;
6、在MainFrame.cpp的OnCreate函数中,
m_wndTrackerBar.CreateEx(...........);
m_wndTrackerBar.EnableDocking(CBRS_ALIGN_ANY);//让自己的控件条可以停靠
DockControlBar(&m_wndTrackerBar);//让控件条显示在主框架上
//----------------------------------------------------------------
//在这里添加下拉控件,动态信息
int index = 0;
RECT rect;
//找到指定的工具项
while(m_wndTrackerBar.GetItemID(index)!=ID_TRACKER_MODE)
index++;
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndTrackerBar.SetButtonInfo(index, ID_TRACKER_MODE, TBBS_SEPARATOR, 150);
m_wndTrackerBar.GetItemRect(index, &rect);
//设置位置
rect.top+=7;
rect.bottom += 200;
// 创建并显示
if (!m_wndTrackerBar.m_ComboTrackerMode.Create(WS_CHILD|WS_VISIBLE | CBS_AUTOHSCROLL |
CBS_DROPDOWNLIST | CBS_HASSTRINGS ,
rect, &m_wndTrackerBar, ID_TRACKER_MODE))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndTrackerBar.m_ComboTrackerMode.ShowWindow(SW_SHOW);
//3 D Stationary;3 D Continuous;6 DoF Stationary Time;6 DoF Continuous Time;
m_wndTrackerBar.m_ComboTrackerMode.AddString("3D静态模式");
m_wndTrackerBar.m_ComboTrackerMode.AddString("3D动态模式");
m_wndTrackerBar.m_ComboTrackerMode.AddString("6D静态模式");
m_wndTrackerBar.m_ComboTrackerMode.AddString("6D动态模式");
m_wndTrackerBar.m_ComboTrackerMode.AddString("自动模式");
m_wndTrackerBar.m_ComboTrackerMode.SetCurSel(0);
//----------------------------------------------------------------
7、创建新函数
<pre name="code" class="cpp">void CMainFrame::OnSelectTrackerMode()
{
CString strContent;
m_wndTrackerBar.m_ComboTrackerMode.GetWindowText(strContent);
//AfxMessageBox(strContent);
10、运行结果