次の方法で共有


MFC ActiveX コントロール : プロパティ ページ

ActiveX コントロールのユーザーは、プロパティ ページを使って、ActiveX コントロールのプロパティの表示や変更を行うことができます。 プロパティにアクセスするには、コントロールのプロパティ ダイアログ ボックスを開きます。このダイアログ ボックスには、カスタマイズされたグラフィカル インターフェイスを持つ 1 つ以上のプロパティ ページがあり、コントロール プロパティの表示や編集に使用されます。

ActiveX コントロール プロパティ ページは、2 とおりの方法で表示する:

  • コントロールのプロパティOLEIVERB_PROPERTIES動詞 () が呼び出されると、コントロールはコントロールのプロパティ ページを含むモーダルのプロパティ ダイアログ ボックスを開きます。

  • コンテナーは、選択したコントロールのプロパティ ページを表示する独自のモードレス ダイアログ ボックスを表示できます。

プロパティ ダイアログ ボックス (次の図に示す) のプロパティ ページの切り替えの現在のプロパティ ページ、タブ、およびプロパティ ページのダイアログ ボックスを閉じるなどの一般的なタスクを実行する変更をキャンセルします。または、ActiveX コントロールに変更を適用するボタンのコレクションを表示するための領域で構成されます。

Dialog Box プロパティ

Circ3 のプロパティ ダイアログ ボックス

ここでは、ActiveX コントロールのプロパティ ページを使用することに関するトピックについて説明します。 次にその例を示します。

  • ActiveX コントロールの既定のプロパティ ページの実装

  • プロパティ ページにコントロールを追加できます。

  • DoDataExchange 関数のカスタマイズ

ActiveX コントロールのプロパティ ページを使用する詳細については、次のトピックを参照します:

ActiveX コントロール以外の MFC アプリケーションのプロパティ シートを使用する方法については、プロパティ シート (MFC)を参照してください。

既定のプロパティ ページの実装

コントロール プロジェクトを作成するときに ActiveX コントロール ウィザードを使用して ActiveX コントロール ウィザードは COlePropertyPage クラスから派生されるコントロールに既定のプロパティ ページ クラスが用意されています。 まず、このプロパティ ページは空白ですが、コントロール ダイアログ ボックス コントロールまたは設定を追加できます。 ActiveX コントロール ウィザードに 1 番目のプロパティ ページ クラスは既定で作成されるため、追加のプロパティ ページ クラスは、クラス ビューを使用して (または COlePropertyPageから派生しました) を作成する必要があります。 この手順の詳細については、「MFC ActiveX コントロール : カスタム プロパティ ページの追加」を参照してください。

プロパティ ページを実装する場合 (この場合の既定) スリー ステップで行います。:

プロパティ ページを実装するには

  1. COlePropertyPage-コントロール プロジェクトへの派生クラス) を追加します。 プロジェクトが ActiveX コントロール ウィザードを使用して作成されている場合 (この場合は、既定のプロパティ ページ クラスは既に存在します。

  2. プロパティ ページのテンプレートにコントロールを追加するには、ダイアログ エディターを使用します。

  3. COlePropertyPageの DoDataExchange 関数-プロパティ ページ コントロールと ActiveX コントロール間のやり取り価値に派生クラスをカスタマイズします。

例として、次の手順では、単純なコントロール (「Sample」とも呼ばれます)。 サンプルでは、MFC ActiveX コントロール ウィザードを使用して作成し、ストック Caption プロパティが含まれています。

プロパティ ページにコントロールを追加できます。

コントロールのプロパティ ページを追加するには

  1. 開くコントロール プロジェクトを開き開いているリソース ビュー。

  2. ダイアログ のディレクトリ アイコンをダブルクリックします。

  3. IDD_PROPPAGE_SAMPLE ダイアログ ボックスを開きます。

    ActiveX コントロール ウィザードは、ダイアログ ID の最後にプロジェクトの名前を、この場合、サンプル付けます。

  4. ダイアログ ボックスの領域にツールボックスから選択したコントロールをドラッグ アンド ドロップします。

  5. この例では、テキスト ラベルのキャプション: 「コントロール」 IDC_CAPTION の識別子を持つエディット ボックスのコントロールで十分です。

  6. 変更を保存するには、ツール バーの [保存] をクリックします。

ユーザー インターフェイスが変更されたため、キャプション プロパティとエディット ボックスをリンクする必要があります。 これは、以降のセクションで 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

コントロールのプロパティを含むテキスト。

参照

関連項目

COlePropertyPage クラス

概念

MFC ActiveX コントロール