Compartilhar via


Controles ActiveX do MFC: Otimização

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua sendo suportada. No entanto, não estamos mais adicionando recursos ou atualizando a documentação.

Este artigo explica as técnicas que você pode usar para otimizar seus controles ActiveX para melhorar o desempenho.

Importante

O ActiveX é uma tecnologia herdada que não deve ser usada para o novo desenvolvimento. Para obter mais informações sobre tecnologias modernas que substituem o ActiveX, consulte Controles ActiveX.

Os tópicos Desativando a Opção Ativar Quando Visível e Provendo Interação do Mouse Enquanto Inativo discutem controles que não criam uma janela até que sejam ativados. O tópico Fornecendo Ativação sem Janelas discute controles que nunca criam uma janela, mesmo quando são ativados.

O Windows tem duas desvantagens principais para objetos OLE: eles impedem que os objetos sejam transparentes ou não retangulares quando ativos e adicionam uma grande sobrecarga à instanciação e exibição de controles. Normalmente, a criação de uma janela leva 60% do tempo de criação de um controle. Com uma única janela compartilhada (geralmente do contêiner) e algum código de expedição, um controle recebe os mesmos serviços de janela, geralmente sem perda de desempenho. Ter uma janela é, em sua maioria, uma sobrecarga desnecessária para o objeto.

Algumas otimizações não necessariamente melhoram o desempenho quando o controle é usado em determinados contêineres. Por exemplo, os contêineres lançados antes de 1996 não dão suporte à ativação sem janelas, portanto, implementar esse recurso não fornecerá um benefício em contêineres mais antigos. No entanto, quase todos os contêineres dão suporte à persistência, portanto, otimizar o código de persistência do controle provavelmente melhorará seu desempenho em qualquer contêiner. Se o controle for especificamente destinado a ser usado com um tipo específico de contêiner, convém pesquisar quais dessas otimizações têm suporte nesse contêiner. Em geral, no entanto, você deve tentar implementar quantas dessas técnicas forem aplicáveis ao seu controle específico para garantir que seu controle seja executado da maneira mais possível em uma ampla variedade de contêineres.

Você pode implementar muitas dessas otimizações por meio do Assistente de Controle ActiveX do MFC, na página Configurações de Controle .

Opções de otimização OLE do Assistente de controle ActiveX do MFC

Configuração de controle no Assistente de Controle ActiveX do MFC Ação Mais informações
Ativar quando visível caixa de seleção Limpar Desativar a opção Ativar Quando Visível
Caixa de seleção de ativação sem janela Selecionar Fornecendo ativação sem janelas
Caixa de seleção Contexto de dispositivo não recortado Selecionar Usar um contexto de dispositivo não recortado
Caixa de seleção Ativação sem cintilação Selecionar Fornecer ativação sem cintilação
Caixa de seleção Notificações de ponteiro do mouse quando inativa Selecionar Proporcionando interação com o mouse quando inativo
Caixa de seleção Código de desenho otimizado Selecionar Otimizando o desenho do controle

Para obter informações detalhadas sobre as funções membro que implementam essas otimizações, consulte COleControl.

Para obter mais informações, consulte:

Consulte também

Controles MFC ActiveX