次の方法で共有


MFC ActiveX コントロール : 最適化

ここでは、パフォーマンスの ActiveX コントロールを最適化するために使用できる手法を示します。

トピック アクティブ化をオフにするときに表示されるオプションアクティブでない間マウス操作の提供 がアクティブ化されるまでのウィンドウを作成するコントロールについて説明します。 使用する場合にも、トピック ウィンドウなしでアクティブの提供 は、ウィンドウを作成するコントロールについて説明します。

Windows に OLE オブジェクトの 2 種類の主要な欠点があります: これらはアクティブおよびコントロールのインスタンス化と表示に大量のオーバーヘッドを追加すると、オブジェクトが透明または四角形でないようにします。 通常、ウィンドウを作成すると、コントロールの作成時に 60 を要します。 単一の共有ウィンドウ (通常はコンテナー) およびディスパッチ コードでは、コントロールはパフォーマンスを失わずに同じウィンドウ サービスは、一般に受け取ります。 ウィンドウをオブジェクトの大部分が不要なオーバーヘッドが持つことで、

一部の最適化は、コントロールが特定のコンテナーで使用される場合のパフォーマンスが向上します。 たとえば、1996 より前にリリースされたコンテナーがウィンドウなしのアクティベーションをサポートしていないため、この機能を実装すると、古いコンテナーの利点はありません。 ただし、ほとんどのコンテナー サポートの永続性、つまりコントロールの永続化コードを最適化することによって、コンテナーのパフォーマンスが向上します。 コントロールは、コンテナーの 1 種類の特定の型で使用されるようになっている場合、最適化は、コンテナーでサポートされる調査する必要があります。 ただし、通常は、多数のコンテナーで、同じように、特定のコントロールに適用されるも行うコントロールを確認するには、これらの手法の大部分が実装することをお勧めします。

コントロールの設定 ページの MFC ActiveX コントロール ウィザードしてこれらの最適化の多くが、実装できます。

MFC ActiveX コントロール ウィザードの OLE 最適化オプション

MFC ActiveX コントロール ウィザードのコントロール設定

アクション

詳細情報

Activate when visible チェック ボックス

Clear

アクティブ化をオフにするときに表示されるオプション

ウィンドウなしでアクティブ(S) チェック ボックス

選択

ウィンドウなしでアクティブの提供

クリッピングを行わないデバイス コンテキスト(U) チェック ボックス

選択

表示 Device Context を使用する

ちらつきなしでアクティブ化(V) チェック ボックス

選択

ちらつきなしのアクティベーションの提供

非アクティブ時のマウス ポインター通知(M) チェック ボックス

選択

アクティブでない間マウス操作の提供

最適化された描画コード(P) チェック ボックス

選択

Optimizing Control Drawing

これらの最適化を実装するメンバー関数の詳細については、「COleControl」を参照してください。 このメンバー関数は 操作ウィンドウなしアクティブでないポインターの処理関数のように使用して、表示されます。

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

参照

概念

MFC ActiveX コントロール