ポップアップメニュー

ポップアップメニューはCMenuクラスを利用する。
まず最初にリソースのMenuを編集する。
ポップアップ用にメニューを作成する。
このとき、メインのメニューの内容を利用したい場合は、利用するメニューの ポップアップにチェックをいれよう。

次にコーディング。
実現方法としては、先ほど作ったリソースのメニューを関連づけて表示させるだけ。

まず、リソースのメニューを格納するCMenu型の変数(ここではmenuとする)を用意し、 メンバ関数loadMenu()でメニューを読み込む

次にポップアップ用のCMenu*型の変数(ここではp_menuとする)を用意し、 menuの中のサブメニューをp_menuに関連づける。
関連づけはCMenuのメンバ関数のGetSubMenu()関数を利用する

関連づけたら、表示を行う。
表示に利用する関数は、CMenuのメンバ関数のTrackPopupMenu()を利用する。

ポップアップメニューの表示
void Cxxxview::OnRButtonDown(UINT nFlags, CPoint point)
{
    // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
    //マウスのポインタをスクリーン座標に変換
    ClientToScreen( &point);

    CMenu *p_menu;
    CMenu menu;

    //メニューの読み込み
    menu.LoadMenu(IDR_POPUP);

    //サブメニューの関連づけ
    p_menu = menu.GetSubMenu(0);

    //ポップアップメニュー表示
    p_menu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
                             point.x, point.y, this);


    CxxxView::OnRButtonDown(nFlags, point);
}