読者です 読者をやめる 読者になる 読者になる

MFCでダイアログにポップアップメニューをつける方法

リソースエディタでメニュー作って以下のようなコードで呼び出す。

// "右クリック"
void CMenuDlg::OnRButtonUp(UINT nFlags, CPoint point)
{
    CMenu    *popupMenuP = NULL;
    CMenu    cMenu;
    int      err = 0;
    
    // メニューをロード
    if (!err) if (!cMenu.LoadMenu(IDR_MENU1)) err = 1;
    // サブメニューを取得
    if (!err) if ((popupMenuP = cMenu.GetSubMenu(0)) == NULL) err = 1;
    // メニューをポップアップ
    if (!err)
    {
        ClientToScreen(&point);
        if (!popupMenuP->TrackPopupMenu(
            TPM_LEFTBUTTON, point.x, point.y, this)) err = 1;
    }
    // メニューを破棄
    cMenu.DestroyMenu();
    
    CDialog::OnRButtonUp(nFlags, point);
}


ネタ元