サブメニューが表示される前に変更できるようにサブメニューを取得しようとしています。MFCでサブメニューを取得するには?
私はウィンドウ用にOnInitMenu()
ハンドラを作成しました。サブメニューを表示するにはpMenu->GetMenuItemInfo()
を使用する予定でした。
ただし、これは動作するようには見えません。私が望むメニューを見つけるために、私はメニューコマンドIDを供給しなければなりません(私はそれをハードコード項目位置に満足いくものとは考えていません)。しかし、サブメニューを開くメニュー項目にはコマンドIDがありません。私はそのサブメニューの中に存在するメニューコマンドを得ることができますが、それでもメニュー自体はありません。
MF_BYPOSITION
に頼ることなく、メインメニューにネストされたサブメニューを見つけるにはどうすればよいですか?
残念ながら、私はサブメニューの位置を指定する必要があります。つまり、メニュー項目を並べ替えるたびに、私が書いたコードが壊れることになります。だから私はそれを避けようとしているのです。 –
新しいメニューを追加するたびに列挙型を作成してみてください。列挙型に追加するだけです。 そして、渡すべきインデックスは、サブメニューのインデックスです。パラメータは、メニューの実際のインデックスです。サブメニューの1つにアイテムを追加すると、メニューの順序は変更されません。 – jonathanrz