コントロールがクライアントの四角形の外側に描画されないことが確実な場合は、IntersectClipRect
によって行われたCOleControl
の呼び出しを無効にすることで、小さいが検出可能な速度向上を実現できます。 これを行うには、COleControl::GetControlFlags によって返されるフラグのセットから clipPaintDC フラグを削除します。 例えば次が挙げられます。
DWORD CMyAxOptCtrl::GetControlFlags()
{
DWORD dwFlags = COleControl::GetControlFlags();
dwFlags &= ~clipPaintDC;
return dwFlags;
}
MFC ActiveX コントロール ウィザードを使用してコントロールを作成するときに、[コントロールの設定] ページで [Unclipped Device Context] オプションを選択すると、このフラグを削除するコードが自動的に生成されます。
ウィンドウなしのアクティブ化を使用している場合、この最適化は影響しません。