首    页 界面/窗口 网络/通讯 数据库 组件开发 图像/多媒体 NET/Web 其它技术 源码下载 资料下载 软件共享 软件外包 曲艺杂谈
栏目导航:  首    页  |  界面/窗口  |  组合框   


工具栏上创建ComboBox组合框控件,框架响应消息


原作者:chinawei0710    源出处:CSDN    发布者:施昌权    发布类型:转载    发布日期:2008-10-15

              

由于业务需要,在原有程序的基础上需要增加几项新的功能。主程序是没有顶部菜单的MDI窗口,考虑在多视环境下的操作实现比较麻烦,故采用主框架响应组合框的消息函数。

创建ComboBox控件
步骤:
1〉在资源里添加一个按钮,命名为ID_COMMBO。
2〉、添加新类class CComboToolBar,
class CComboToolBar : public CToolBar
{
public:
CComboBox  m_comboBox; //手动添加
};
我的方法是:向导-〉MFC类-〉CToolBarCtrl,然后将CToolBarCtrl改为CToolBar即可。
3〉、在框架类的OnCreate()函数中添加创建代码。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
int index = 0;
CRect rect;

while (m_wndToolBar.GetItemID(index) != ID_COMMBO) index++;
m_wndToolBar.SetButtonInfo(index,ID_COMMBO,TBBS_SEPARATOR,112);
m_wndToolBar.GetItemRect(index,&rect);
rect.InflateRect(0, 0, 0, 100);
if (!m_wndToolBar.m_comboBox.Create(WS_CHILD|WS_VISIBLE|CBS_AUTOHSCROLL|
CBS_DROPDOWNLIST|CBS_HASSTRINGS,
rect, &m_wndToolBar, ID_COMMBO))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}

m_wndToolBar.m_comboBox.ShowWindow(SW_SHOW);
m_wndToolBar.m_comboBox.AddString("单点多日");
m_wndToolBar.m_comboBox.AddString("多点单日");
m_wndToolBar.m_comboBox.AddString("月度统计");
m_wndToolBar.m_comboBox.AddString("年度统计");
m_wndToolBar.m_comboBox.SetCurSel(0);

/*********方法二****************************/
// CString item[4] = {"单点多日","多点单日","月度统计","年度统计"};
// for(int i=0; i<4; i++)
// m_wndToolBar.m_comboBox.AddString(item[i]);
// m_wndToolBar.m_comboBox.SetCurSel(0);

}

记得在框架类中加上 #include “CComboToolBar.h”

4>、在框架中添加消息函数
  由于组合框是动态创建的,所以消息函数只能手动添加
  //MainFrame.h
  //{{AFX_MSG(CMainFrame)
  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  afx_msg void OnButtonui();
  //}}AFX_MSG

 afx_msg void OnDropdown();
  DECLARE_MESSAGE_MAP()

 //MainFrame.cpp
  BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  //{{AFX_MSG_MAP(CMainFrame)
 
  //}}AFX_MSG_MAP
  ON_CBN_SELCHANGE(ID_COMMBO,OnDropdown)
  END_MESSAGE_MAP()

 void CMainFrame::OnDropdown()
{
   int m_nMode = m_wndToolBar.m_comboBox.GetCurSel();
CString ss;
ss.Format("nSel=%d",nSel);
AfxMessageBox(ss);
}

OK,大功告成。


关于我们 版权声明 广告服务 联系我们 友情链接 加入收藏
站长:施昌权    Email:scq2099yt@163.com    MSN:scq2099yt@live.cn    QQ:14046300    本站QQ群:67202409
Copyright © 2008     卓为VC(www.joyvc.cn)    All Rights Reserved    建议分辨率 1024×768
本站由施昌权制作维护
京ICP备09012297号