Desativando a ativar quando visível opção
Um controle tem dois estados básicos: ativo e inativo.Tradicionalmente, esses estados foram diferenciados por se o controle tinha uma janela.Um controle ativo tinha uma janela; não especificou um controle inativo.Com a introdução de ativação sem janelas, esta distinção não está mais universal, mas ainda se aplica a muitos controles.
Em comparação com o restante da inicialização normalmente executada por um controle ActiveX, a criação de uma janela é uma operação extremamente cara.O ideal é que um controle deve adiar criando sua janela até que absolutamente necessário.
Muitos controles não precisa estar ativo durante todo o time que elas estã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 requer que ele se torne ativo (por exemplo, clicando com o mouse ou pressionando a tecla guia).Para fazer com que um controle permaneça inativo até que o contêiner precisa ativá-lo, remova o OLEMISC_ACTIVATEWHENVISIBLE sinalizar de sinalizadores de diversos do controle:
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
The OLEMISC_ACTIVATEWHENVISIBLE sinalizar for omitido automaticamente se você desativar o Ativar quando visível opção de a Configurações de controle ActiveX página do assistente MFC controle ActiveX quando você cria controle ActiveX.