|
タブコントロールの基本1
今回はタブコントロールを実装します。タブコントロールは、タブ形式で画面を切り替えるコントロールです。限られたスペースで、表示したい項目が多いときに使うと便利です。

また、似たようなものにプロパティシートというものがありますが、こちらは用途が若干限定されています。今回のタブコントロールは、実装次第で汎用的に使えるものです。
ではまず、リソースの編集から始めましょう。今回はタブコントロールとボタン1つを追加しました。
タブコントロールのプロパティは、リソースIDだけ指定し、他はデフォルトのままでOKです。

タブコントロールの操作は、CTabCtrlクラスの関数を使って行いますので、Control型のDDX変数を追加すると操作が楽になります。タブコントロールを右クリックし、「変数の追加」を選択します。

アクセスはprivate、「コントロール変数」をチェックし、カテゴリにControlを選択します。変数のデータ型はCTabCtrlにします。
変数名はメンバ変数となるのでm_で始まる名前にしましょう。さらにDDXのControl変数であることがわかるようにm_xcで始まる名前にすると分かりやすくなります。この辺は好みで決めましょう。

タブコントロールに変数を追加したら、さらに"取得"ボタンにBN_CLICKEDのメッセージハンドラを追加します。(ボタンのイベントハンドラの追加方法は、「ボタンの基本」を見てください。)
次は、タブの中に表示する子ダイアログを作ります。これは、ページごとに1つずつ作成します。リソースビューからDialogを右クリックし、「Dialogの挿入」を選択します。
子ダイアログのプロパティは、リソースIDとBorder、Styleを設定します。Borderは「なし」に、Styleは「子」にします。

次に子ダイアログに関連づけるクラスを作成します。ダイアログを右クリックし、「クラスの追加」を選択します。基本クラスはCDialogを選択します。
今回は、エディットボックスを1つ作り、ユーザの入力を受け付けるようにしました。エディットボックスにはDDXのvalue変数を追加します。エディットボックスについては「エディットボックスの基本」を見てください。
タブのページごとに子ダイアログを作り、クラスを追加します。今回は3ページ分作りました。作成したあとのクラスとリソースは次のようになっています。
子ダイアログクラスのインスタンスを、親ダイアログクラス(タブコントロールを貼り付けたクラス)のメンバ変数に追加します。クラスビューから親ダイアログクラスを右クリックし、「追加」→「変数の追加」を選択します。
アクセスはprivateにし、変数のデータ型は、追加した子ダイアログのクラスを指定します。ページ数分だけ、同様に追加します。

最後に、タブが切り替わったことを通知するイベントハンドラを追加します。タブコントロールを右クリックし、「イベントハンドラの追加」を選択します。

メッセージの種類に「TCN_SELCHANGE」を選択します。

ここまでで実装する準備が整いました。今回はここで一区切りにしたいと思います。次回はコードの編集をします。
|