ポップアップメニューについて


poo-  2003-09-10 14:31:06  No: 52112  IP: [192.*.*.*]

はじめまして!!
今VC++の勉強中なのですが、右クリックメニューの作成で
少々わからないことがあり、投稿させてもらいました。

右クリック時にはCMenuクラスを使用して、CreatePopupMenu、AppendMenu
TrackPopupMenuでトップレベルのメニューの表示はできたのですが、
2層目のメニューがある場合はどうすればいいのでしょうか?

例えばウインドウズの右クリックメニューでいうならば、右クリック→新規作成
→(各ファイル等)

この各ファイル等のポップアップメニューを表示するための方法をよかったら
教えていただけませんか。


CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING|MF_ENABLED,ID_FILTER_03UNSHARP,"ソフト");
ClientToScreen(&point);
menu.TrackPopupMenu(
TPM_LEFTALIGN  |  //クリック時のX座標をメニューの左辺にする
    TPM_RIGHTBUTTON,  //右クリックでメニュー選択可能とする
    point.x,point.y,  //メニューの表示位置
    this              //このメニューを所有するウィンドウ
  );
  menu.DestroyMenu();

  CScrollView::OnRButtonDown(nFlags, point);

編集 削除
ぴのきよ  2003-09-17 11:59:03  No: 52113  IP: [192.*.*.*]

同じくVC++勉強中のぴのきよです。

こうやったらできるみたいです。

----------------------------------------------
CMenu menu;
CMenu menuchild;
menu.CreatePopupMenu();
menuchild.CreatePopupMenu();
menuchild.AppendMenu(MF_STRING, ID_1, "ファイル1");
menuchild.AppendMenu(MF_STRING, ID_2, "ファイル2");
menu.AppendMenu(MF_STRING|MF_ENABLED|MF_POPUP,
               (unsigned int)menuchild.m_hMenu,"ソフト");
ClientToScreen(&point);
menu.TrackPopupMenu(
  TPM_LEFTALIGN  |    //クリック時のX座標をメニューの左辺にする
         TPM_RIGHTBUTTON,    //右クリックでメニュー選択可能とする
         point.x,point.y,    //メニューの表示位置
         this                //このメニューを所有するウィンドウ
         );
menu.DestroyMenu();

      
CDialog::OnRButtonDown(nFlags, point);
----------------------------------------------

編集 削除