Erro: GetDlgItem() devolve NULL no Win32s

Traduções de Artigos Traduções de Artigos
Artigo: 149982 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

Chamar GetDlgItem() para obter o ponteiro CWnd de um controlo de uma caixa de diálogo pode falhar e devolver nulo em Win32s. DoDataExchange(), que chama funções DDX, também termina chamar GetDlgItem(). Isto pode resultar numa assert em Dlgdata.cpp, linha 43.

Causa

Isto é causado pela existência estilos expandidos em qualquer um dos controlos na caixa de diálogo. Qualquer estilo expandido converte o recurso de diálogo a um recurso DIALOGEX. Win32s não suporta DIALOGEX recursos. Nenhum dos controlos na caixa de diálogo são criadas e a caixa de diálogo não apresenta correctamente. Para obter detalhes sobre como substituir o estilo DIALOGEX, consulte a secção "Mais informação" deste artigo.

Resolução

Remova todos os estilos expandidos todos os controlos no recurso de diálogo.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo. Está a investigar o problema e publicará novas informações na base de dados de conhecimento da Microsoft como fica disponível.

Visual C++ 4.2 e versões posteriores não suportam aplicações de construção Win32s.

Mais Informação

Para obter informações adicionais, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
138971Erro: Não funciona no Win32s predefinido baseado na caixa de diálogo de aplicação

Propriedades

Artigo: 149982 - Última revisão: 11 de fevereiro de 2014 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Subscription
Palavras-chave: 
kbnosurvey kbarchive kbmt kbbug kbdlg kbprogramming kbuidesign KB149982 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 149982

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com