オプションのオフ
コントロールは、 2 人の基本的な状態があります: アクティブと非アクティブ。従来、これらの状態は、コントロールがペインを持っているかどうかを判別されました。アクティブなコントロールはウィンドウもいます; アクティブでないコントロールは。ウィンドウなしのアクティベーションの概要によって、この違いは、汎用ではありませんが、まだ多くのコントロールに適用されます。
通常、 ActiveX コントロールによって実行される他の初期化と比較してウィンドウの作成は最大の費用がかかる操作です。理想的には、コントロールは絶対に必要までペインを作成することをお勧めします。
多くのコントロールは、コンテナーに表示されている間、アクティブである必要はありません。多くの場合、コントロールは非アクティブ状態にユーザーがアクティブになるように要求する操作を実行するまで維持できます (たとえば、マウスでクリックするか、 Tab キーを押すと)。コントロールをコンテナーまで非アクティブ状態にできるよう、コントロールのそのほかのフラグから削除します OLEMISC_ACTIVATEWHENVISIBLE のフラグをアクティブにする必要があります:
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
OLEMISC_ACTIVATEWHENVISIBLE のフラグは自動的にコントロールの作成時に MFC ActiveX コントロール ウィザードの コントロール設定 のページの Activate When Visible オプションをオフ省略されます。