次の方法で共有


COleControl クラス

OLE コントロールを開発するための強力な基本クラスです。

class COleControl : public CWnd

解説

CWnd から派生したこのクラスは、Windows のウィンドウ オブジェクトのすべての機能に加え、イベントの発生や、メソッドやプロパティのサポート機能などの OLE 独自の機能も継承します。

OLE コントロールは OLE コンテナー アプリケーションに挿入できます。さらに、イベント発生の双方向システムや、コンテナーへのメソッドおよびプロパティの公開を使用して、コンテナーと対話することもできます。 標準の OLE コンテナーは、OLE コントロールの基本機能だけをサポートします。 OLE コントロールの機能拡張はサポートしません。 イベント発生は、コントロールで発生した特定のアクションの結果として、コンテナーにイベントが送られたときに起こります。 一方コンテナーは、C++ クラスのメンバー関数やデータ メンバーに似たメソッドやプロパティの公開された組み合わせを使って、コントロールと対話します。 このシステムによって、開発者がコントロールの外観を制御したり、あるアクションが起きたときにコンテナーに通知するように設定したりできます。

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

OLE コントロールは、ウィンドウがなくても埋め込み先編集の有効化を行うことができます。 ウィンドウなしのコントロールには、次のような利点があります。

  • 透過的に配置でき、四角形である必要がありません。

  • インスタンスのサイズを縮小し、オブジェクトの作成時間を短縮します。

コントロールはウィンドウを必要としません。 ウィンドウが提供するサービスは、共有の単一ウィンドウ (通常はコンテナー) と小さなディスパッチ コードを使って提供できます。 ウィンドウを持つと、ほとんどの場合オブジェクトは不必要に複雑になってしまいます。

ウィンドウなしのアクティベーションが使用される場合は、ほかの場合にはコントロール自身のウィンドウによって提供されていたサービスを、ウィンドウを持っているコンテナーが提供する必要があります。 たとえば、コントロールがキーボード フォーカスの問い合わせ、マウス キャプチャの問い合わせ、またはデバイス コンテキストの取得を必要とする場合、これらの操作はコンテナーによって管理されます。 COleControlウィンドウなしの操作のメンバー関数は、コンテナー内でこれらの操作を起動します。

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

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

OLE コントロール オブジェクトでは、アクティブになった場合にだけウィンドウを作成できますが、非アクティブ/アクティブ状態の変換に多くの処理が必要になるため、状態の変換の速度が低下します。 これが問題だとは、場合があります。例として、テキスト ボックスのグリッドを検討してください。 列内でカーソルが上下に移動する動作に合わせ、それぞれのコントロールは埋め込み先編集が有効な非アクティブになる必要があります。 この場合、アクティブ/非アクティブの状態の変換の速度が、スクロール速度に直接影響します。

OLE コントロール フレームワークの開発の詳細についてを参照してくださいMFC ActiveX コントロール概要:MFC ActiveX コントロール プログラムを作成する。 やちらつきなしのコントロールを含む、OLE コントロールの最適化についてを参照してくださいMFC ActiveX コントロール:最適化

必要条件

**ヘッダー:**afxctl.h

参照

処理手順

circ サンプル:ActiveX コントロール

TESTHELP サンプル:ヒントとヘルプの ActiveX コントロール

参照

COlePropertyPage クラス

CWnd クラス

階層図

CFontHolder クラス

CPictureHolder クラス

その他の技術情報

COleControl のメンバー