Share via


MFC ActiveX コントロール

ActiveX コントロールは、コンポーネント オブジェクト モデル (COM: Component Object Model) に基づく再利用可能なソフトウェア コンポーネントです。多岐にわたる OLE の機能をサポートしており、さまざまなソフトウェアの要件に合わせてカスタマイズできます。ActiveX コントロールは、通常の ActiveX コントロール コンテナーの WWW (World Wide Web)ページのインターネットの使用を考慮してデザインされています。ここで説明する MFC または Active Template Library (ATL)と ActiveX コントロールを作成できます。

ActiveX コントロールは、イベントに応答し (マウス クリックなど)、オートメーション オブジェクトに要素と似たプロパティとメソッドを含めるインターフェイスを通じて管理される独自のウィンドウに描画できます。

これらのコントロールは、データベース アクセス、データの監視、またはグラフなどの多くの使用方法では、開発できます。移植性のほかに、 OLE コンテナーのメニューを持つメニューを統合する、 ActiveX コントロールを既存の OLE コンテナーとの互換性と機能など、 ActiveX コントロールに機能は使用できませんが、前にサポートします。また、 ActiveX コントロールは完全にコントロールがメソッドの読み取り \ 書き込みのプロパティと、コントロールのユーザーから呼び出すことができる一連公開できるようにするオートメーションをサポートします。

アクティブな場合にのみウィンドウを作成するウィンドウなしの ActiveX コントロールおよびコントロールを作成できます。ウィンドウなしのコントロールはアプリケーションの表示を高速化し、透過的とオン コントロールを持つことができます。また、 ActiveX コントロールのプロパティを非同期で読み込むことができます。

ActiveX コントロールは、 OLE コンテナーで使用できるインプロセス サーバー (通常は小さなオブジェクト)として実装されます。ActiveX コントロールのみに注意するように設計されている OLE コンテナー内で使用されるときに ActiveX コントロールのすべての機能が使用できることに注意してください。ActiveX コントロールをサポートするコンテナーの一覧については 他のアプリケーションに ActiveX コントロールを移植します。 を参照してください。以後 「コントロール コンテナーと呼ばれるこのコンテナー型は、によってアクティブ使用」 ActiveX コントロールをコントロールのプロパティとメソッドのできる ActiveX コントロールからイベントの形式で通知を受け取ります。次の図は、この対話を示します。

ActiveX コントロール コンテナーとウィンドウを持つ ActiveX コントロールとの対話

ActiveX コントロールとの対話

ActiveX コントロールの最適化の最近の詳細については、 MFC ActiveX コントロール: 最適化を参照してください。

MFC ActiveX コントロールを作成するには、 ActiveX コントロール プロジェクトを作成します。を参照してください。

詳細については、次のトピックを参照してください。

ActiveX コントロールの基本的なコンポーネント

ActiveX コントロールは、コントロール コンテナーとユーザーと効率的にやり取りするために複数のプログラム要素を使用します。これらは、クラス COleControlの一連のイベントが発生する関数とディスパッチ マップです。

独自に作成した ActiveX コントロールのオブジェクトは、 MFC の基本クラスから、 COleControl強力な機能群を継承します。これらの機能は、埋め込み先編集の有効化とオートメーションのロジックが含まれています。COleControl は、イベントを発生させる機能と MFC のペイン オブジェクトと同じ機能をコントロール オブジェクトを提供することができます。COleControl は、 ウィンドウなしのコントロールを提供できます (ペインがスクロールするマウスのキャプチャ、キーボード フォーカス)、オファーのはるかに高速表示可能な機能の一部のヘルプのコンテナーに依存する。

コントロール クラスが COleControlから派生するため、または 「起動するために派生します」という機能を、特定の条件が満たされたときにコントロール コンテナーにイベントと、メッセージ。重要な出来事がコントロールで発生した場合、これらのイベントがコンテナー コントロールを通知するために使用されます。コントロール コンテナーにパラメーターのイベントにアタッチして、イベントに関する追加情報を送信できます。ActiveX コントロールのイベントに関する詳細については、技術情報 MFC ActiveX コントロール: イベントを参照してください。

最後の要素はコントロールのユーザーに公開関数 (メソッド)と属性 (プロパティ)は公開するために使用されるディスパッチ マップです。プロパティは、コンテナー コントロールまたはコントロールのユーザーがさまざまな方法でコントロールを操作できるようにします。ユーザーがコントロールの外観を変更するか、コントロールの特定の値を変更したり、コントロールが維持するデータの特定のピースのアクセスなど、コントロールの要求にすることもできます。このインターフェイスは、コントロールの開発者によって決定され、 クラス ビューを使用して定義されます。ActiveX コントロールのメソッドとプロパティの詳細については、技術情報 MFC ActiveX コントロール: メソッドプロパティを参照してください。

ウィンドウを持つコントロールと ActiveX コントロール コンテナー間の対話

コントロールは、コントロール コンテナー内で使用すると、の通信に 2 の機能を使用します: また、プロパティとメソッドを公開し、イベントを発生させます。次の図は、これら二つの機能を実行するかを示します。

ActiveX コントロール コンテナーと ActiveX コントロールとの通信

コミュニケーション ActiveX Cntrl コンテナー ActiveXCntrl

前の図は、別の OLE インターフェイスがコントロールによって (オートメーションおよびイベントに加えて)にどのように処理されるかについて説明します。

コンテナーでコントロールの通信はすべて、 COleControlによって実行されます。コンテナーの要求の一部を処理するには、コントロール クラスで実装される COleControl のメンバー関数を呼び出します。すべてのメソッドとプロパティは、この方法で処理されます。コントロールのクラスは、 COleControlのメンバー関数を呼び出して、コンテナーがあります。通信を開始できます。イベントは次のように発生します。

ActiveX コントロールの実行中と非アクティブ都道府県

コントロールは、 2 人の基本的な状態があります: アクティブと非アクティブ。従来、これらの状態は、コントロールがペインを持っているかどうかを判別されました。アクティブなコントロールはウィンドウもいます; アクティブでないコントロールは。ウィンドウなしのアクティベーションの概要によって、この違いは、汎用ではありませんが、まだ多くのコントロールに適用されます。

ウィンドウなしのコントロール がアクティブになると、コンテナーからマウスのキャプチャ、キーボード フォーカス、スクロールおよび他のペインのサービスを呼び出します。アクティブでないコントロールにマウス対話を提供します。、または ウィンドウを作成するためにアクティブ化されるまで待機します。コントロールを作成することもできます。

ペインを持つコントロールがアクティブになると、コントロール コンテナー、ユーザーおよびウィンドウには十分にやり取りできます。下の図に、 ActiveX コントロール、コントロール コンテナーとオペレーティング システム間の通信のパスを示します。

ウィンドウを持つ ActiveX コントロールがアクティブになったときの Windows メッセージの処理

Win Msg 処理ウィンドウ付き ActiveX Cntrl (アクティブ)

シリアル化

永続ストレージにプロパティの値を書き込むに、永続性と呼ばれるデータをシリアル化する機能割り当てコントロール。コントロールは、ストレージからオブジェクトの状態を読み取ることにより、再作成できます。

コントロールがストレージ メディアにアクセスする必要がないことに注意してください。代わりに、コントロール コンテナーは適切なタイミングで使用するストレージ メディアをコントロールに提供を行います。シリアル化の詳細については、技術情報 MFC ActiveX コントロール: シリアル化を参照してください。最適化のシリアル化の詳細については、 ActiveX コントロールの 最適化の永続性と初期化 を参照: 最適化。

ActiveX コントロール クラスとツールのインストール

Visual C++ をインストールすると、 ActiveX コントロールがセットアップ (既定で選択されます)で選択されている MFC ActiveX コントロール クラスとリテール バージョンとデバッグの ActiveX コントロールの実行時の DLL は自動的にインストールされます。

既定では、 ActiveX コントロール クラスとツールは、 \Program Files\Microsoft Visual Studio.NET の下に次のサブディレクトリにインストールされています:

  • \Common7\Tools

    テスト コンテナーのファイル (TstCon32.exe、ヘルプ ファイルが使用されています。

  • \Vc 7 \ atlmfc \ は含まれています

    MFC ActiveX コントロールを作成するために必要なインクルード ファイルが含まれています

  • \Vc 7 \ atlmfc \ \ ソース mfc

    MFC で特定の ActiveX コントロール クラスのソース・コードが含まれます。

  • \Vc 7 \ atlmfc \ ライブラリ

    MFC ActiveX コントロールを開発するために必要なライブラリが含まれています

また、 MFC ActiveX コントロールのサンプルがあります。これらの例の詳細については、 コントロールのサンプル: MFC ベースの ActiveX コントロールを参照してください。

参照

その他の技術情報

ユーザー インターフェイス