在工具栏中添加组合框

  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);   
       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值