羊 东莞网站开发,做图片的软件带字图片,标识设计是什么,锦州网站设计刚在CSDN博客上面看到一篇文章,讲解VS2008中的新类CMFCToolBar的使用, 其中有个关于插入组合框的部分居然要修改MFC的源代码, 文章链接 http://blog.csdn.net/chenjelly/article/details/6718478 这里贴出正确的插入方法: 1. MainFrm.h, 声明变量 CMFCToolBarComboBoxButton…刚在CSDN博客上面看到一篇文章,讲解VS2008中的新类CMFCToolBar的使用, 其中有个关于插入组合框的部分居然要修改MFC的源代码, 文章链接 http://blog.csdn.net/chenjelly/article/details/6718478 这里贴出正确的插入方法: 1. MainFrm.h, 声明变量 CMFCToolBarComboBoxButton *m_comboAddress;2. MainFrm.cpp, 在OnCreate函数中创建工具条并且插入一个组合框 if (!m_wndToolBar.CreateEx (this, TBSTYLE_FLAT,CBRS_SIZE_FIXED | AFX_DEFAULT_TOOLBAR_STYLE) ||!m_wndToolBar.LoadToolBar (IDR_MAINFRAME, uiToolbarColdID, uiMenuID, FALSE /* Not locked */, uiToolbarDisID, 0, uiToolbarHotID, uiToolbarPresID)){TRACE0(Failed to create toolbar\n);return -1; // fail to create}//插入组合框m_wndToolBar.InsertButton (CMFCToolBarComboBoxButton(ID_GO_ADDRESS_EDIT, 0), 3);//设置组合框属性m_comboAddress (CMFCToolBarComboBoxButton*)m_wndToolBar.GetButton(3);m_comboAddress-EnableWindow(TRUE);m_comboAddress-SetCenterVert();m_comboAddress-SetDropDownHeight(100);//设置下拉列表的高度m_comboAddress-SetFlatMode();//添加内容m_comboAddress-AddItem(_T(once));m_comboAddress-AddItem(_T(if only));m_comboAddress-AddItem(_T(P.S.I Love You));m_comboAddress-AddItem(_T(Love Me If You Dare));m_comboAddress-SelectItem(0); //默认选中DockPane (m_wndToolBar);另外的就是网上找的一篇文章了 VC2008在CMFCToolBar工具栏中加入组合框 如何在CMFCToolBar工具栏中加入组合框等控件且先看在线MSDN上怎么说的 To add a combo box button to a toolbar, follow these steps: 1. Reserve a dummy resource ID for the button in the parent toolbar resource. 2. Construct a CMFCToolBarComboBoxButton object. 3. In the message handler that processes the AFX_WM_RESETTOOLBAR message, replace the dummy button with the new combo box button by using CMFCToolBar::ReplaceButton. 具体过程如下 1.在工具栏资源编辑器中加入id为IDR_COM的空白工具栏 2.在头文件中定义组合框 CMFCToolBarComboBoxButton* m_ComboButton; 3.BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)中添加消息响应 ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset) 在头文件中声明消息函数 afx_msg LRESULT OnToolbarReset(WPARAM,LPARAM); 在CMainFram中定义处理函数 LRESULT CMainFrame::OnToolbarReset(WPARAM wp,LPARAM lp) { m_ComboButton new CMFCToolBarComboBoxButton(IDR_COM,GetCmdMgr ()-GetCmdImage (IDR_COM, FALSE)); m_ComboButton-EnableWindow(true); m_ComboButton-SetCenterVert(); m_ComboButton-SetDropDownHeight(25); m_ComboButton-SetFlatMode(); m_ComboButton-AddItem(_T(OPTION1)); m_ComboButton-AddItem(_T(OPTION2)); m_ComboButton-SelectItem(0); m_wndToolBar.ReplaceButton (IDR_COM, *m_ComboButton); return 0; } 2、添加组合框的事件消息响应函数 消息映射 ON_COMMAND(IDR_COM, CMainFrame::OnClickComboBox) ON_CBN_SELCHANGE(IDR_COM,CMainFrame::OnSelChangeClick)//别忘了在TOOLBAR中添加IDR_COM资源。 消息声明 afx_msg void OnSelChangeClick(); afx_msg void OnClickComboBox(); 消息处理函数 void CMainFrame::OnSelChangeClick() { CMFCToolBarComboBoxButton* pSrcCombo CMFCToolBarComboBoxButton::GetByCmd (IDR_COM, TRUE); int index m_ComboButton-GetCurSel(); index pSrcCombo-GetCurSel(); CString str pSrcCombo-GetItem(index); } void CMainFrame::OnClickComboBox() { } 注意一定要GetByCmdOnClickComboBox没有做任何处理但是如果去掉的话组合框将编程灰色无法使用。 注更新工具栏 1.工具栏的右侧向下的小箭头-添加或删除按钮-标准-重置工具栏 2.运行regedit打开注册表-HKEY_CURRENT_USER-Software-工程名找到工程名将其从注册表中删之。