博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS2010在工具栏上创建查找组合框,即:CMFCToolBar中加入CMFCToolBarComboBoxButton
阅读量:6511 次
发布时间:2019-06-24

本文共 2381 字,大约阅读时间需要 7 分钟。

1. 添加资源,新加一个ToolBar的资源 IDR_TOOLBAR_SEARCH,并在此工具栏上再加上一个项:取ID为:ID_SEARCH

2. 在MainFrm类中加入如下代码:
变量:

CMFCToolBar m_wndToolBarSearch;

方法:

CMFCToolBarComboBoxButton *m_comboButton;afx_msg LRESULT OnToolbarReset(WPARAM,LPARAM);afx_msg void OnSelChangeClick();afx_msg void OnClickComboBox();

3. 在MainFrm的消息映射中加入如下代码:

ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset)ON_COMMAND(ID_SEARCH, &CMainFrame::OnClickComboBox)ON_CBN_SELCHANGE(ID_SEARCH,&CMainFrame::OnSelChangeClick)

4. 在MainFrm的构造函数中修改如下:

CMainFrame::CMainFrame() : m_comboButton( NULL )

5. 在MainFrm的析构函数中加入:

if ( NULL != m_comboButton ){    delete m_comboButton;    m_comboButton = NULL;}else ;

6. 添加消息响应函数的实现

LRESULT CMainFrame::OnToolbarReset(WPARAM wp,LPARAM lp){       if ( NULL == m_comboButton )    {        m_comboButton = new CMFCToolBarComboBoxButton(ID_SEARCH, GetCmdMgr ()->GetCmdImage(ID_SEARCH, FALSE), CBS_DROPDOWN);    }    else ;    m_comboButton->EnableWindow(TRUE);    m_comboButton->SetCenterVert();    m_comboButton->SetDropDownHeight(10);    m_comboButton->SetFlatMode();    m_comboButton->AddItem(_T("OPTION1"));    m_comboButton->AddItem(_T("OPTION2"));    m_comboButton->SelectItem(0);    m_wndToolBarSearch.ReplaceButton (ID_SEARCH, *m_comboButton);    return 0;}void CMainFrame::OnSelChangeClick(){    MessageBox( _T("OnSelChangeClick.") );}void CMainFrame::OnClickComboBox(){    CMFCToolBarComboBoxButton* pSrcCombo = CMFCToolBarComboBoxButton::GetByCmd (ID_SEARCH, TRUE);    int index = m_comboButton->GetCurSel();    index = pSrcCombo->GetCurSel();    CString str;    pSrcCombo->GetEditCtrl()->GetWindowText( str );    pSrcCombo->AddItem(str);    MessageBox( _T("OnClickComboBox: ") + str );}

7. 在MainFrm的OnCreate中的适当地方添加创建的代码:

if (!m_wndToolBarSearch.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1, 1, 1, 1), IDR_TOOLBAR_SEARCH) ||        !m_wndToolBarSearch.LoadToolBar(theApp.m_bHiColorIcons ? IDR_TOOLBAR_SEARCH : IDR_TOOLBAR_SEARCH))    {        TRACE0("未能创建工具栏\n");        return -1;      // 未能创建}//m_wndToolBarSearch.SetWindowText( _T("Search") );//m_wndToolBarSearch.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);//m_wndToolBarSearch.EnableDocking(CBRS_ALIGN_ANY);//DockPane(&m_wndToolBarSearch);

转载于:https://www.cnblogs.com/junx1989/archive/2012/07/24/junx1989_20120724102359.html

你可能感兴趣的文章