VCdog(狗)编程网

vc狗编程网希望你喜欢

博客园 首页 新随笔 联系 订阅 管理

首先给你大家说明的是,其实这个东西不是很难,难的就是你不细心,废话不多说了,开工,

第一,  用向导生成一个单文档应用程序,什么也不用改

第二,  在CMainFrame框架中添加一个CComboBox类型的全局变量,取名为m_wndComBox,再点击“resourceView”,在“string table”中添加一个ID,取名为“ID_COMBOX1”

第三,  在CMainFrame类的OnCreate函数中最后一行添加如下代码

CToolBarCtrl&pToolBar=m_wndToolBar.GetToolBarCtrl(); //获得一个工具栏的对象

  int Count;

  Count=pToolBar.GetButtonCount();//得到工具栏中有多少个按钮

  m_wndToolBar.SetButtonInfo(Count-1,ID_COMBOX1,TBBS_SEPARATOR,120);//这句话很重要,设置最后一个按钮的信息,详细的用法请参考msdn,当然了看看其他的资料也是一样的

  CRect rect;

  pToolBar.GetItemRect(Count-1 ,&rect);//得到最后一个按钮的大小,以便后面可以设置COMBOX的大小

  rect.bottom+=120;         //利用上面得到的大小重新设置ComBox的高度

  rect.right=rect.left+120; //这就是设置ComBox按钮的宽度(这里可以调整ComBox按钮的宽度)

  if(!m_wndComBox.Create(WS_VISIBLE|WS_CHILD|CBS_AUTOHSCROLL|CBS_DROPDOWNLIST,rect,&m_wndToolBar,ID_COMBOX1))    //这里是动态创建一个ComBox,包括一些样式等等,具体详见msdn

  {

         TRACE0("Failedto create ComBox \n");

         return -1;      // 创建失败就返回

  }

  else

  {

         m_wndComBox.AddString("添加成功");

         m_wndComBox.AddString("添加成功12");

        m_wndComBox.SetCurSel(0);

  }

上面的步骤已经实现怎么样在工具栏上添加COMBOX,那么我们怎么添加它的消息相应呢,步骤如下

第一:首先在CMainFrame类的CPP文件中添加消息映射,如红色部分所示

BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)

  //{{AFX_MSG_MAP(CMainFrame)

         // NOTE - the ClassWizard will add andremove mapping macros here.

         //   DO NOT EDIT what you see in these blocks of generated code !

  ON_CBN_SELCHANGE(ID_COMBOX1,OnSelChange)//这里添加的是消息映射,

  ON_WM_CREATE()

  //}}AFX_MSG_MAP

END_MESSAGE_MAP()

 

第二:在CMainFrame类的.h文件中添加消息处理函数,当然了你也可以先添加这个。如红色所示

  //{{AFX_MSG(CMainFrame)

  afx_msg int OnCreate(LPCREATESTRUCTlpCreateStruct);

  afx_msg void OnSelChange(); //这里是添加映射函数的声明

         // NOTE - the ClassWizard will add andremove member functions here.

         //   DO NOT EDIT what you see in these blocks of generated code!

  //}}AFX_MSG

  DECLARE_MESSAGE_MAP()

第三:在回到CMainFrame类的CPP文件文件中添加映射函数的定义,如下面所示

 void CMainFrame:: OnSelChange ()

{

  MessageBox("你选择了我");

}

好了上面的步骤已经完成,如果你还想添加其他的消息,就按照上面的步骤添加就可以,

备注:其实任何的按钮或者其他控件都可以用此方法来实现的,你也可以在上面动态创建一个RadioButton控件

转载表明出处:VC狗编程网