Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um controle tem dois estados básicos: ativo e inativo. Tradicionalmente, esses estados eram distinguidos por se o controle tinha uma janela. Um controle ativo tinha uma janela; um controle inativo não. Com a introdução da ativação sem janelas, essa distinção não é 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. Idealmente, um controle adiaria a criação de sua janela até que ela fosse absolutamente necessária.
Muitos controles não precisam estar ativos o tempo todo em que estão visíveis em um contêiner. Geralmente, um controle pode permanecer no estado inativo até que o usuário execute uma operação que exija que ele se torne ativo (por exemplo, clicar com o mouse ou pressionar a tecla TAB). Para fazer com que um controle permaneça inativo até que o contêiner precise ativá-lo, remova o sinalizador OLEMISC_ACTIVATEWHENVISIBLE dos diversos sinalizadores do controle:
static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;
O sinalizador OLEMISC_ACTIVATEWHENVISIBLE será omitido automaticamente se você desativar a opção Ativar Quando Visível na página Configurações de Controle do Assistente de Controle ActiveX do MFC ao criar seu controle.