MFC ActiveX コントロール : 最適化
ここでは、パフォーマンスの ActiveX コントロールを最適化するために使用できる手法を示します。
トピック アクティブ化をオフにするときに表示されるオプション と アクティブでない間マウス操作の提供 がアクティブ化されるまでのウィンドウを作成するコントロールについて説明します。 使用する場合にも、トピック ウィンドウなしでアクティブの提供 は、ウィンドウを作成するコントロールについて説明します。
Windows に OLE オブジェクトの 2 種類の主要な欠点があります: これらはアクティブおよびコントロールのインスタンス化と表示に大量のオーバーヘッドを追加すると、オブジェクトが透明または四角形でないようにします。 通常、ウィンドウを作成すると、コントロールの作成時に 60 を要します。 単一の共有ウィンドウ (通常はコンテナー) およびディスパッチ コードでは、コントロールはパフォーマンスを失わずに同じウィンドウ サービスは、一般に受け取ります。 ウィンドウをオブジェクトの大部分が不要なオーバーヘッドが持つことで、
一部の最適化は、コントロールが特定のコンテナーで使用される場合のパフォーマンスが向上します。 たとえば、1996 より前にリリースされたコンテナーがウィンドウなしのアクティベーションをサポートしていないため、この機能を実装すると、古いコンテナーの利点はありません。 ただし、ほとんどのコンテナー サポートの永続性、つまりコントロールの永続化コードを最適化することによって、コンテナーのパフォーマンスが向上します。 コントロールは、コンテナーの 1 種類の特定の型で使用されるようになっている場合、最適化は、コンテナーでサポートされる調査する必要があります。 ただし、通常は、多数のコンテナーで、同じように、特定のコントロールに適用されるも行うコントロールを確認するには、これらの手法の大部分が実装することをお勧めします。
コントロールの設定 ページの MFC ActiveX コントロール ウィザードしてこれらの最適化の多くが、実装できます。
MFC ActiveX コントロール ウィザードの OLE 最適化オプション
MFC ActiveX コントロール ウィザードのコントロール設定 |
アクション |
詳細情報 |
---|---|---|
Activate when visible チェック ボックス |
Clear |
|
ウィンドウなしでアクティブ(S) チェック ボックス |
選択 |
|
クリッピングを行わないデバイス コンテキスト(U) チェック ボックス |
選択 |
|
ちらつきなしでアクティブ化(V) チェック ボックス |
選択 |
|
非アクティブ時のマウス ポインター通知(M) チェック ボックス |
選択 |
|
最適化された描画コード(P) チェック ボックス |
選択 |
これらの最適化を実装するメンバー関数の詳細については、「COleControl」を参照してください。 このメンバー関数は 操作ウィンドウなし と アクティブでないポインターの処理関数のように使用して、表示されます。
詳細については、次のトピックを参照してください。