|
プロパティシートの基本1
今回のテーマはプロパティシートです。プロパティシートは、よくアプリケーションのオプション設定で使われる、設定画面用のダイアログです。
タブコントロールと似ていますが、プロパティシートはダイアログの一種、タブコントロールはダイアログ上のコントロールです。
プロパティシートのタブを切り替えたときに出てくる各ページは、プロパティページと呼ばれます。プロパティページは各ページごとにダイアログリソースを作成します。
プロパティシート自体は、ダイアログリソースを作る必要はありません。これは自動的に作られます。逆に言うと、プロパティシートの外観はほぼ決まっていますので、これを変えたい場合はプロパティシートの使用はあきらめて、タブコントロールを使って自前で実装するしかありません。
ではまず、リソースの編集から始めましょう。今回は"オプション"ボタンを押したらプロパティシートを表示し、プロパティシートを閉じたら、設定された値をエディットボックスに表示するプログラムを作ってみます。ということで、呼び出し元のダイアログには"オプション"ボタンとエディットボックスを追加しました。

例によって、エディットボックスにはDDX変数、ボタンにはBN_CLICKEDのメッセージハンドラを追加しています。(この辺は「エディットボックスの基本」、「ボタンの基本」を見てください。)
次は、プロパティページ用のダイアログをページ数分だけ追加します。
今回は、次のようなシンプルなダイアログを2つ作りました。それぞれDDX変数も追加しています。(この辺は「チェックボックスの基本」、「ラジオボタンの基本」を見てください。)

では、作成したダイアログに関連づけるプロパティページクラスを作りましょう。ダイアログをダブルクリックすると、クラスウィザードが現れます。基本クラスに「CPropertyPage」を選択し、クラス名を入力して完了を押します。これをページ数分繰り返します。

次に、プロパティシートクラスを作ります。これはダイアログリソースはありませんので、クラスビューから新規に追加します。

基本クラスに「CPropertySheet」を選択し、クラス名を入力して完了を押します。

プロパティページは、プロパティシートクラスのメンバ変数として追加します。作成したプロパティシートクラスを右クリックし、"追加"->"変数の追加"を選択します。

"変数の種類"に、作成したプロパティページクラスを指定し、変数名を入力し、完了を押します。これをページ数分繰り返します。

これで必要なリソースとクラスの準備はできました。次回はコードの実装をしていきます。
|