Desativando a opção Ativar Quando Visível
Um controle tem dois estados básicos: ativa e inativo. Tradicionalmente, esses estados foram distinguidos pelo se o controle tiver uma janela. Um controle ativa tinha uma janela; um controle inativa não fez. Com a introdução de ativação sem o windows, essa distinção não é mais universal, mas ainda se aplica a muitos controles.
Comparado com o restante da inicialização executada normalmente por um controle ActiveX, a criação de uma janela é uma operação muito dispendiosa. De modo ideal, um controle adiaria a criação da janela até que seja absolutamente necessário.
Muitos controles não precisam estar ativas no momento que inteiros são visíveis em um contêiner. Frequentemente, um controle pode permanecer no estado inativo até que o usuário executa uma operação que o requer se tornar ativa (por exemplo, clique com o mouse ou pressionando a tecla TAB). Para fazer com que um controle permanece inativo até o contêiner precisa ativá-lo ou desativá-lo, remove o sinalizador de OLEMISC_ACTIVATEWHENVISIBLE de diversos sinalizadores de controle:
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
O sinalizador de OLEMISC_ACTIVATEWHENVISIBLE é omitido automaticamente se você desativar a opção de Activate When Visible na página de Controle configurações do assistente do controle ActiveX MFC quando você cria o controle.