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

メニューの表示と選択(WindowsAPI)

メニューを表示し、選択されたら、その項目のリソースIDマクロ名を表示する・・・。

f:id:BG1:20160518020203p:plain

リソースを追加・・・。

f:id:BG1:20160518020222p:plain

Menuを選択・・・。

f:id:BG1:20160518020313p:plain

メインメニューの項目1から入力していく・・・。

f:id:BG1:20160518020437p:plain

"ファイル(&F)"とする・・・。"(&F)"は、ショートカットキーがFであることを指す・・・。

f:id:BG1:20160518020718p:plain

その下は"新規(&N)"とする・・・。
こんな感じで、

f:id:BG1:20160518020832p:plain

ここまで作ったら、

f:id:BG1:20160518020904p:plain

区切り記号挿入・・・。

f:id:BG1:20160518020946p:plain

さらに"アプリケーションの終了(&X)"・・・。

f:id:BG1:20160518021114p:plain

それぞれの項目を選択して、IDを"ID_FILE_xxx"という感じに変更する・・・。
(例えば"新規"ならID_FILE_NEWみたいに・・・。)

f:id:BG1:20160518021627p:plain

"アプリケーションの終了(&X)"は"ID_APP_EXIT"・・・。

f:id:BG1:20160518021803p:plain

メニュー自体のIDも"IDR_MENU1"から、

f:id:BG1:20160518021854p:plain

"IDR_MAINMENU"に変更・・・。

あとはコード側・・・。

Menu.cppで、

Menuリソースを追加した時にできたresource.hをインクルード・・・。

wc.lpszMenuNameにこのようにIDR_MAINMENUを指定・・・。

これでメニューが表示される・・・。

さらにWindowProcに、

メニュー項目が選択されてWM_COMMANDが来た時に、LOWORD(wParam)ごとにMessageBoxで表示・・・。
"新規(&N)"が選択されたら、LOWORD(wParam)はID_FILE_NEWになるので、"ID_FILE_NEW"と表示する・・・。

他の4つの項目も同様に・・・。

f:id:BG1:20160518023001p:plain

実行して、

f:id:BG1:20160518023034p:plain

"新規(&N)"を選択すると、

f:id:BG1:20160518023057p:plain

こんな風に表示される・・・。

"アプリケーションの終了(&X)"なら、

f:id:BG1:20160518023147p:plain

こうすると、

f:id:BG1:20160518023159p:plain

こうなる・・・。

Test/menu/menu/winapi/src/Menu/Menu at master · bg1bgst333/Test · GitHub