【C++】ポップアップメニューも自作する

この記事は約2分で読めます。

勝手に切り捨てて勝手に統合するプロジェクト(Project Reunion)に期待しているんですが、またC++/Win32流行るかもね(まぁ、無理でしょうか)。流行らんやろなぁ。とにかく面倒ですもんね。

そんでもって、自作メニューバーの作成が大体終わりました。メニューバーはツールバーを使って作成したんですが、まーめんどいね。Win32++ってライブラリを参考にしました。

Win32++は↓です。現在も更新されていてすごいですね。 

あと、ツールバーの背景色を変更する方法が分からなくて滅茶苦茶悩んだんですが、以下の方法でできました。参考までにどうぞ。 

ツールバーの背景色変更方法

1.ToolBarウィンドウのスタイルに「TBSTYLE_CUSTOMERASE」を設定する

TBSTYLE_CUSTOMERASEは「ツールバーが WM_ERASEBKGND メッセージを処理するときに、NM_CUSTOMDRAW 通知コードを生成します。」とのこと。
これを設定するとツールバーの背景を消すタイミングで NM_CUSTOMDRAW メッセージが発生するんで、 

2.NM_CUSTOMDRAW メッセージで、CDDS_PREERASE の時に、好きな色で描画してCDRF_SKIPDEFAULTを返せばいけるようです。

そんなこんなでできたのがこれ

メニューのテキストやアイコンは自分で全部描画しています。あとフォルダアイコンの横にある↓もですね。

うーん。今見ると、無効になったやり直すアイコンは若干、ギザギザになってますね。元に戻すアイコンはそうでもないのに。

これで、メニューバーとツールバーは好きな色で描画できるようになりました。やったぜ。ここまできたら全部色変更可能にしたくって、今はポップアップメニューを自作しています。

下の黒が自作ポップアップメニューです。サイズなんかもかなり標準と同じようになりました。今はクリックしても何も動作しないのですが、これから対応予定です。多分ハマると思います…。

おわりに

自作ポップアップメニューの作成で参考にする記事はこちら。これぐらいしかない。ってかこれを参考に作成します。

コメント

タイトルとURLをコピーしました