熊「実装ミスって変なとこに出るヤツを付ける会」


ドロップダウンボタンにメニューを付ける

先回は、ドロップダウンボタンを付けて、押されたイベントを拾うところまで書きました
今回は押された後にメニューが出て、メニューを押したらメッセージボックスが出る
そんな風にお父さんはこの子を育ててみたいと思います

こんな風に

キャプチャ


プログラムって、作ってると徐々に自分の子供みたいに思えてくるよね

熊「おまえ、人間失格」


メニューを作成する

ドロップダウン時のメニューを作る場合、リソースエディタとかで作って、
それをLoadMenuするという方法をよく見かけますが、残念ながら、これを作ってる人間は

熊「リソースってなんか嫌い」

という食わず嫌いをしているのと(画像もパス指定したし)、
あと、将来的には、ボタンとかメニューとか画像とか全部設定ファイルに書いて
動的に出そうかと思っているので、リソースは使わない方向で


ということで、やり方はこんな感じになります
1. CreatePopupMenuでポップアップメニューを作り
2. MENUITEMINFOでメニューのアイテムを作り
3. InsertMenuItemで 2 を 1 にセットし
4. TB_GETRECTGetWindowRectでメニューを出す座標を取得し
5. TrackPopupMenuでメニューを表示する


メニュー選択時のイベントを取得する

メニューが選択された際のイベントは、WM_COMMANDで取得できます
IDは、MENUITEMINFOのwIDで設定したものになります


というわけで、ソース

ToolbarWindow.h
ToolbarWindow.cpp

ビルドして実行してください
たぶん、動きます

熊「思ったより楽だったな」

確かに、意外と楽でした
次回もこの調子で、ザクザク作っていきます


HOME    次へ


コメントスペース