はじめに
前回は、WTL特有の仕組みであるダイアログリサイズを利用したプログラムを作成しました。今回は、同様にWTL特有のGUIであるコマンドバーや、UI更新ハンドラを利用したプログラムについて説明します。
対象読者
ATL/WTLによるWindowsプログラミングに興味があり、C++やWin32APIによるWindowsプログラミングの基本的な知識がある方。
必要な環境
サンプルはVisual C++ 6.0で作成し、Windows2000で動作確認しています。
コマンドバー
コマンドバーとは、Internet Explorerのメニューバーのようなグリップが付いていて移動可能なバーのことです。WTLはコマンドバーを作成するためにCCommandBarCtrl
を用意しています。CCommandBarCtrl
を使うと、メニューリソースを用意するだけで簡単にコマンドバーを作成することができます。また、画像リソースを用意すると、メニューアイテムに画像を関連付けることができます。
UI更新ハンドラ
UI更新ハンドラとは、適切なタイミング(アイドル時やWM_INITMENUPOPUP
メッセージが送られてきた時など)にユーザーインターフェイス(UI)の状態を更新するための仕組みです。例えば、メニューアイテムにチェックマークを入れたり、ツールバーボタンを使用不可にするときなどに使用します。WTLはUI更新ハンドラを実現するためにCUpdateUI
を用意しています。
本稿では、これらのGUI
クラスを使用したサンプルプログラムを作成します。このプログラムは表示領域が左右に分かれている「スプリッタウィンドウ」で、左ペインはシステムで利用可能なフォントの一覧を表示し、右ペインは一覧から選択したフォントをプレビューします。
メニューには[ビュー切り換え]があり、これを実行すると左ペインが非表示になります。再度実行すると左ペインが表示されます。