MFC ActiveX コントロール : プロパティ ページ
ActiveX コントロールのユーザーは、プロパティ ページを使って、ActiveX コントロールのプロパティの表示や変更を行うことができます。プロパティにアクセスするには、コントロールのプロパティ ダイアログ ボックスを開きます。このダイアログ ボックスには、カスタマイズされたグラフィカル インターフェイスを持つ 1 つ以上のプロパティ ページがあり、コントロール プロパティの表示や編集に使用されます。
ActiveX コントロールのプロパティ ページは、 2 種類の方法で表示:
コントロールのプロパティの動詞 (OLEIVERB_PROPERTIES)が呼び出されると、コントロールのプロパティ ページを含むモーダルでプロパティ ダイアログ ボックスを開きます。
コンテナーは選択したコントロールのプロパティ ページを表示する独自のモードレス ダイアログ ボックスを表示できます。
プロパティ] ダイアログ ボックス (次の図で示す)プロパティ ページを切り替えるための現在のプロパティのページ、タブ、およびプロパティ ページのダイアログを閉じますなどの一般的なタスクを実行する変更をキャンセルするかまたはすぐに ActiveX コントロールに変更を適用するボタンの収集を表示するための領域で構成されます。
プロパティ] ダイアログ ボックス
この技術情報では、 ActiveX コントロールのプロパティ ページを使用することに関するトピックについて説明します。以下に例を示します。
ActiveX コントロールの既定のプロパティ ページの実装
プロパティ ページにコントロールを追加できます。
DoDataExchange の関数のカスタマイズ
ActiveX コントロールのプロパティ ページを使用する方法の詳細については、次の技術情報を参照:
ActiveX コントロール以外の MFC アプリケーションでのプロパティ シートを使用する方法については、 プロパティ シート (MFC)を参照してください。
既定のプロパティ ページの実装
コントロール プロジェクトの作成に ActiveX コントロール ウィザードを使用して ActiveX コントロール ウィザードは COlePropertyPage クラスから派生するコントロールの既定のプロパティ ページ クラスを提供します。最初に、このプロパティ ページは空白ですが、それにコントロールのダイアログ ボックス コントロールやコントロール セットを追加できます。ActiveX コントロール ウィザードが 1 台のプロパティ ページ クラスは既定で作成されるため、追加のプロパティ ページ クラス ( COlePropertyPageから派生ビュー クラスを使用して作成する必要があります。この手順の詳細については、 MFC ActiveX コントロール : カスタム プロパティ ページの追加を参照してください。
プロパティ ページを実行すると (この場合の既定)次の三つの手順で:
プロパティ ページを実行します。
COlePropertyPage- コントロール プロジェクトへの派生クラスを追加します。プロジェクトが ActiveX コントロール ウィザードを使用して作成された (この場合は)として、既定のプロパティ ページ クラスは既にあります。
プロパティ ページのテンプレートにコントロールを追加するには、ダイアログ エディターを使用します。
COlePropertyPageの DoDataExchange の関数 - プロパティ ページ コントロールと ActiveX コントロール間で交換値への派生クラスをカスタマイズします。
例として、次の手順では、簡単なコントロールを使用します (「Sample」とも呼ばれます)。サンプルは、 ActiveX コントロール ウィザードを使用して作成し、ストック Caption プロパティだけを含みます。
プロパティ ページにコントロールを追加できます。
コントロールのプロパティ ページに追加するには
開いているコントロール プロジェクトによってリソース ビューを開きます。
ダイアログ のディレクトリのアイコンをダブルクリック。
IDD_PROPPAGE_SAMPLE のダイアログ ボックスを開きます。
ActiveX コントロール ウィザードは、ダイアログ ID の最後にプロジェクトの名前 (この場合、サンプル追加します。
ダイアログ ボックスの領域にツールボックスから選択したコントロールをドラッグ アンド ドロップします。
この例では、テキスト ラベル コントロールのタイトル 「: 」 IDC_CAPTION の ID を持つエディット ボックス コントロールで十分です。
変更を保存するに 上書き保存(&&S),保存(&&S),上書き保存,保存,保存しますか ツールバーでをクリックします。
ユーザー インターフェイスが変更されたため、キャプション プロパティとエディット ボックスをリンクする必要があります。これは、以降のセクションで CSamplePropPage::DoDataExchange の関数を編集してされます。
DoDataExchange の関数のカスタマイズ
プロパティ ページの CWnd::DoDataExchange 関数は、コントロールのプロパティの実際の値とプロパティ ページ値をリンクすることができます。リンクを設定するには、各コントロールのプロパティに適切なプロパティ ページのフィールドをマップします。
これらのマッピングは、プロパティ ページの DDP_ 関数を使用して実装されます。DDP_ 関数は、 1 種類の例外を除き、標準 MFC ダイアログで使用される DDX_ の関数と同様に動作します。メンバー変数への参照に加えて、 DDP_ 関数は、コントロール プロパティの名前を指定します。次は、プロパティ ページの DoDataExchange の関数の一般的なエントリです。
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
この関数は DDP_TEXT 関数を使用してキャプションとプロパティ ページの m_caption のメンバー変数を関連付けます。
プロパティ ページ コントロールを挿入してもらった後 DDP_Text の関数を使用して、プロパティ ページ、 IDC_CAPTION実際のコントロールのプロパティ、キャプションの間のリンクを作成する必要があります。
プロパティ ページ (MFC) は、チェック ボックス、オプション ボタン、リスト ボックスなどの他のダイアログ コントロールの型に使用できます。次の表は、プロパティ ページの DDP_ 関数とオブジェクトのセット全体を示します:
プロパティ ページの関数
関数名 |
リンクするために使用します。 |
---|---|
DDP_CBIndex |
コントロール プロパティを持つコンボ ボックスで選択された文字列のインデックス。 |
DDP_CBString |
コントロール プロパティを持つコンボ ボックスで選択された文字列。選択された文字列はプロパティの値と同じ文字から始まっている必要がありますが、すべてが一致していなくてもかまいません。 |
DDP_CBStringExact |
コントロール プロパティを持つコンボ ボックスで選択された文字列。選択された文字列とプロパティの文字列値が完全に一致している必要があります。 |
DDP_Check |
コントロール プロパティを持つチェック ボックス。 |
DDP_LBIndex |
コントロール プロパティを持つリスト ボックスで選択された文字列のインデックス。 |
DDP_LBString |
コントロール プロパティを持つリスト ボックスで選択された文字列。選択された文字列はプロパティの値と同じ文字から始まっている必要がありますが、すべてが一致していなくてもかまいません。 |
DDP_LBStringExact |
コントロール プロパティを持つリスト ボックスで選択された文字列。選択された文字列とプロパティの文字列値が完全に一致している必要があります。 |
DDP_Radio |
コントロール プロパティを持つオプション ボタン。 |
DDP_Text |
コントロール プロパティを持つテキスト。 |