CMFCRibbonComboBox的訊息響應

來源:互聯網
上載者:User

在CMFCRibbonComboBox上選擇不同項的話,應該要響應
ON_CBN_SELCHANGE
之類的訊息,但是在VS2008SP1中的功能包裡面的CMFCRibbonComboBox貌似不是響應這個的。下面介紹
CMFCRibbonComboBox的動態建立,綁定,提示、訊息響應:
首先:在MainFrm.cpp裡面:

CMFCRibbonComboBox*pComboSimple2=new CMFCRibbonComboBox(ID_LANGUAGE,FALSE,75,_T("文法著色"),3);
pComboSimple2->AddItem(_T("ADA"));
pComboSimple2->SelectItem(0);
pPanelStyle->Add(pComboSimple2);  //pPanelStyle是CMFCRibbonPanel

然後:在Resource.h裡面自建一個#define ID_LANGUAGE   61447

接著:在rc資源檔的String Table裡添加一個提示資訊:ID_LANGUAGE             "這是對語言的著色/n風格"

最後:在C*View的標頭檔裡面定義一個訊息afx_msg void OnSelectLanguage();

在C*View的實現檔案裡面綁定訊息ON_COMMAND(ID_LANGUAGE, OnSelectLanguage)

在下面實現訊息的函數:

void C*View::OnSelectLanguage()
{
    // TODO: 在此添加命令處理常式代碼   
    CMFCRibbonBar* pRibbon = ((CMainFrame*) GetTopLevelFrame())->GetRibbonBar();
    ASSERT_VALID(pRibbon);

    CMFCRibbonComboBox* pSizeCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_LANGUAGE));
    if (pSizeCombo == NULL)
    {
        return;
    }
    AfxMessageBox(pSizeCombo->GetEditText());
}

好,現在編譯運行,當在組合框裡面選擇項後,就會彈出此項的名稱。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.