Desativando a ativar quando opção visível
Um controle tem dois estados básicos: ativos e inativos.Tradicionalmente, esses estados foram distintos pela se o controle tinha uma janela.Um controle ativo tinha uma janela; um controle inativo não.Com a introdução de ativação sem janelas, essa distinção não é mais universal, mas ainda se aplica a vários controles.
Em comparação com o restante da inicialização geralmente realizado por um controle ActiveX, a criação de uma janela é uma operação extremamente cara.Idealmente, um controle deve adiar criando sua janela até que absolutamente necessário.
Muitos controles não precisará ser ativo sempre que eles são visíveis em um contêiner.Freqüentemente, um controle pode permanecer em estado inativo até que o usuário executa uma operação que exige que ele se torne ativo (por exemplo, clicando com o mouse ou pressionando a tecla TAB).Para fazer com que um controle permanecerá ativo até que o recipiente precisa ativá-lo, remova o OLEMISC_ACTIVATEWHENVISIBLE sinalizador de sinalizadores de diversos do controle:
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
O OLEMISC_ACTIVATEWHENVISIBLE sinalizador for omitido automaticamente se você desativar o Ativar quando visível opção no Configurações de controle de página do assistente MFC ActiveX controle quando você criar seu controle.