MFC ActiveX コントロール : プロパティ ページ
ActiveX コントロールのユーザーは、プロパティ ページを使って、ActiveX コントロールのプロパティの表示や変更を行うことができます。 プロパティにアクセスするには、コントロールのプロパティ ダイアログ ボックスを開きます。このダイアログ ボックスには、カスタマイズされたグラフィカル インターフェイスを持つ 1 つ以上のプロパティ ページがあり、コントロール プロパティの表示や編集に使用されます。
ActiveX コントロール プロパティ ページは、2 とおりの方法で表示する:
コントロールのプロパティOLEIVERB_PROPERTIES動詞 () が呼び出されると、コントロールはコントロールのプロパティ ページを含むモーダルのプロパティ ダイアログ ボックスを開きます。
コンテナーは、選択したコントロールのプロパティ ページを表示する独自のモードレス ダイアログ ボックスを表示できます。
プロパティ ダイアログ ボックス (次の図に示す) のプロパティ ページの切り替えの現在のプロパティ ページ、タブ、およびプロパティ ページのダイアログ ボックスを閉じるなどの一般的なタスクを実行する変更をキャンセルします。または、ActiveX コントロールに変更を適用するボタンのコレクションを表示するための領域で構成されます。
Dialog Box プロパティ
ここでは、ActiveX コントロールのプロパティ ページを使用することに関するトピックについて説明します。 次にその例を示します。
ActiveX コントロールの既定のプロパティ ページの実装
プロパティ ページにコントロールを追加できます。
DoDataExchange 関数のカスタマイズ
ActiveX コントロールのプロパティ ページを使用する詳細については、次のトピックを参照します:
ActiveX コントロール以外の MFC アプリケーションのプロパティ シートを使用する方法については、プロパティ シート (MFC)を参照してください。
既定のプロパティ ページの実装
コントロール プロジェクトを作成するときに ActiveX コントロール ウィザードを使用して ActiveX コントロール ウィザードは COlePropertyPage クラスから派生されるコントロールに既定のプロパティ ページ クラスが用意されています。 まず、このプロパティ ページは空白ですが、コントロール ダイアログ ボックス コントロールまたは設定を追加できます。 ActiveX コントロール ウィザードに 1 番目のプロパティ ページ クラスは既定で作成されるため、追加のプロパティ ページ クラスは、クラス ビューを使用して (または COlePropertyPageから派生しました) を作成する必要があります。 この手順の詳細については、「MFC ActiveX コントロール : カスタム プロパティ ページの追加」を参照してください。
プロパティ ページを実装する場合 (この場合の既定) スリー ステップで行います。:
プロパティ ページを実装するには
COlePropertyPage-コントロール プロジェクトへの派生クラス) を追加します。 プロジェクトが ActiveX コントロール ウィザードを使用して作成されている場合 (この場合は、既定のプロパティ ページ クラスは既に存在します。
プロパティ ページのテンプレートにコントロールを追加するには、ダイアログ エディターを使用します。
COlePropertyPageの DoDataExchange 関数-プロパティ ページ コントロールと ActiveX コントロール間のやり取り価値に派生クラスをカスタマイズします。
例として、次の手順では、単純なコントロール (「Sample」とも呼ばれます)。 サンプルでは、MFC ActiveX コントロール ウィザードを使用して作成し、ストック Caption プロパティが含まれています。
プロパティ ページにコントロールを追加できます。
コントロールのプロパティ ページを追加するには
開くコントロール プロジェクトを開き開いているリソース ビュー。
ダイアログ のディレクトリ アイコンをダブルクリックします。
IDD_PROPPAGE_SAMPLE ダイアログ ボックスを開きます。
ActiveX コントロール ウィザードは、ダイアログ ID の最後にプロジェクトの名前を、この場合、サンプル付けます。
ダイアログ ボックスの領域にツールボックスから選択したコントロールをドラッグ アンド ドロップします。
この例では、テキスト ラベルのキャプション: 「コントロール」 IDC_CAPTION の識別子を持つエディット ボックスのコントロールで十分です。
変更を保存するには、ツール バーの [保存] をクリックします。
ユーザー インターフェイスが変更されたため、キャプション プロパティとエディット ボックスをリンクする必要があります。 これは、以降のセクションで 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 |
コントロールのプロパティを含むテキスト。 |