【MFC】MFCMenuButton 的用法


 

背景:因為對話框界面上的空間有限,為了節省空間,我決定采用一個MFCMenuButton用來實現同一類按鈕事件。本來我打算設置兩個按鈕:“單個刪除文件”和“清空所有文件”兩個按鈕,但是空間太小,而且這兩個按鈕的功能相似,所以,我干脆將這兩個按鈕組合成為一個按鈕,采用下拉菜單選擇的方式分別觸發按鈕事件。

首先,需要創建一個菜單資源。如果資源視圖中沒有Menu文件夾,則需要在資源視圖窗口右擊后綴為.rc的文件夾,選擇添加資源,彈出對話框。

在彈出的對話框中選擇Menu,之后點擊新建按鈕。在新建的Menu上面設置下拉菜單每個選項的名字。

分別設置兩個選項的ID如下所示。

 

好了,現在這個名字叫做"IDR_MENU1"的菜單就編輯好了,下面在MFCMenuButton中調用該菜單資源即可。

首選,需要新建一個MFCMenuButton的控件,然后添加關聯變量,假設為m_MenuButton1。

 在對話框的OnInitDialog()函數中插入下面的代碼,載入菜單資源。

1 CMenu* pMenu = new CMenu;
2 pMenu->LoadMenu(IDR_MENU1); //載入菜單資源
3 m_MenuButton1.m_hMenu = pMenu->GetSubMenu(0)->GetSafeHmenu();

 在按鈕事件中插入下面的代碼進行測試。

void CTABPAGE2::OnBnClickedMfcmenubuttonDelete1()
{
    // TODO: 在此添加控件通知處理程序代碼
    if(m_MenuButton1.m_nMenuResult == ID_X_Single)
    {
        AfxMessageBox(_T("單個刪除文件!"));
    }
    else if(m_MenuButton1.m_nMenuResult == ID_X_All)
    {
        AfxMessageBox(_T("刪除全部文件"));
    }
     
    return;
}

彈出對話框的部分替換成為功能語句即可分別完成不同的功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM