COleControl

COleControlクラスは OLE コントロールの開発のための強力な基本クラスです。CWndから派生した、このクラスは、Windows ウィンドウ オブジェクトのすべての機能と OLE には、特定のイベントの起動やメソッドとプロパティをサポートする機能などの追加機能を継承します。

OLE コントロールは OLE コンテナ アプリケーションに挿入することができ、双方向のシステム イベントの発生と公開のメソッドとプロパティ、コンテナーを使用して、コンテナーと通信します。標準の OLE コンテナーは OLE コントロールの基本機能のみをサポートすることに注意してください。彼らは、OLE コントロールの拡張機能をサポートすることです。イベントの発生は、コントロールで特定のアクションの結果として、コンテナーにイベントが送信されるときに発生します。ターンでは、コンテナー コントロールで、露出の一連のメソッドとプロパティ、メンバー関数に似ています、C++ クラスのデータ メンバーを使用して通信します。このアプローチに、開発者は、コントロールの外観を制御し、特定のアクションが発生した場合、コンテナーに通知することができます。

ウィンドウなしのコントロール

OLE コントロール使用の場所でアクティブ ウィンドウなしすることができます。ウィンドウなしのコントロールの重要な利点があります。:

コントロールは、ウィンドウを必要はありません。ウィンドウを提供するサービスは、1 つの共有ウィンドウ (通常コンテナー) のと少しのディスパッチ コード経由で簡単に提供できます。ウィンドウは、オブジェクトのほとんどの不必要な合併症であります。

ウィンドウなしのアクティベーションを使用すると、(、ウィンドウが)、コンテナーそれ以外の場合、コントロール自身のウィンドウで提供するサービスを提供するための責任です。たとえば、コントロールがキーボード フォーカスをクエリ、クエリをマウスのキャプチャ、または、デバイス コンテキストを取得する必要がある場合は、これらの操作は、コンテナーによって管理されます。COleControl ウィンドウなしの操作メンバー関数を呼び出すこれらの操作のコンテナー。

ウィンドウなしのアクティベーションを有効にした場合は、メッセージ コントロールのIOleInPlaceObjectWindowlessフェースをコンテナー デリゲートを入力 (拡張の IOleInPlaceObjectなしのサポート)。マウスの調整を適切に調整した後このインターフェイスのCOleControlの実装、コントロールのメッセージ マップを通じてメッセージをディスパッチします。対応するエントリをメッセージ マップに追加して通常のウィンドウ メッセージと同様にこれらのメッセージを処理することができます。

ウィンドウなしのコントロールでは、常にCOleControlのメンバー関数は、対応するCWndメンバー関数または、関連する Windows API 関数の代わりに使用する必要があります。

OLE コントロール オブジェクトも、ウィンドウのみアクティブになるがアクティブ非アクティブのための移行に必要な作業量が上がるし、移行の速度をダウンすると作成できます。この問題は場合: グリッド テキスト ボックスの例としては、検討してください。とき列をカーソルを上下には、各コントロール非アクティブ場所でする必要があります。アクティブ/非アクティブ転移の速度は、スクロールの速度に直接影響します。

OLE コントロール フレームワークの開発の詳細についてを参照してください ActiveX コントロール 作成プログラム、ActiveX ControlWizard で Visual の C++ プログラマのガイド。基本的なフレームワークの機能を追加の詳細についてを参照してください 、ActiveX コントロールの作成(円のチュートリアル) でVisual の C++ のチュートリアル。やちらつきなしのコントロールを含む OLE コントロールの最適化についてを参照してください ActiveX コントロール: 最適化Visual の C++ プログラマのガイド

#include lt;afxctl.h>

クラス メンバーの |nbsp;基本クラス|階層図(&N)

サンプル特価; MFC サンプル CIRC3 | MFC サンプル DRAWPIC | MFC サンプル TESTHELP(&N)

参照特価;COlePropertyPageCFontHolderCPictureHolder(&N)

Index