A mensagem WM_INITDIALOG

O sistema faz não enviar um WM_CREATE mensagem para o procedimento caixa de diálogo. Em vez disso, ele envia uma mensagem WM_INITDIALOG quando ele cria a caixa de diálogo e seus controles, mas antes de exibir a caixa de diálogo. O procedimento deve executar qualquer inicialização necessária para garantir que a caixa de diálogo exibe o atual configurações associado com a tarefa ou comando. Por exemplo, quando uma caixa de diálogo contém um Controlarar para mostrar a unidade e directório actuais, o procedimento deve determinar a unidade e directório actuais e defina o controle a esse valor.

O procedimento pode inicializar controles usando funções como a SetDlgItemText e CheckDlgButton. Porque controles são janelas, o procedimento também pode manipulá-los, usando funções de gerenciamento de janela, como EnableWindow e SetFocus. O procedimento pode recuperar o identificador de janela para um controle usando o GetDlgItem função.

O procedimento de caixa de diálogo pode alterar o conteúdo, o Estado e a posição de qualquer controle conforme necessário. Por exemplo, em uma caixa de diálogo que contém uma caixa de lista de nomes de arquivo e um botão Abrir, o procedimento pode desabilitar o botão abrir até que o usuário seleciona um arquivo da lista. Neste exemplo, o modelo de caixa de diálogo Especifica o estilo WS_DISABLED para o botão abrir e o sistema automaticamente desabilita o botão quando criá-la. Quando o procedimento caixa diálogo recebe uma mensagem de notificação de caixa de listagem, indicando que o usuário tiver selecionado um arquivo, o procedimento chama a função EnableWindow para habilitar o botão abrir.

Para exibir um ícone personalizado na barra de legenda da caixa de diálogo, o manipulador WM_INITDIALOG pode enviar a mensagem WM_SETICON para a caixa de diálogo.

Se o aplicativo cria a caixa de diálogo usando uma das funções DialogBoxParam, DialogBoxIndirectParam, CreateDialogParamou CreateDialogIndirectParam, lParam parâmetro da mensagem WM_INITDIALOG contém o parâmetro extra passado para a função. Aplicativos geralmente usar este parâmetro extra para passar o endereço de informações de inicialização adicionais para o procedimento caixa de diálogo, mas o procedimento de caixa de diálogo deve determinar o significado do parâmetro. Se o aplicativo usa outra função para criar a caixa de diálogo, o sistema define o lParam parâmetro para NULL.

Antes de retornar o WM_INITDIALOG mensagem, o procedimento deve determinar se ele deve definido o foco de entrada para um determinado controle. Se o procedimento caixa diálogo retorna TRUE, o sistema automaticamente define o foco de entrada para o Controlarar cujo identificador de janela é na wParam parâmetro. Se o controle recebe o foco padrão não é adequado, ele pode definir o foco para o Controlarar apropriado usando o SetFocus função. Se o procedimento define o foco de entrada, ela deve retornar FALSE para impedir que o sistema de configuração o foco padrão. O Controlarar recebe o padrão entrada foco é sempre o primeiro controle dado no modelo que é visível, não desativado, e tem o estilo WS_TABSTOP. Se nenhum tal controle existe, o sistema define o foco de entrada de padrão para o primeiro controle no modelo de.

Index