Compartilhar via


Classe CDialog

A classe base usada para exibir caixas de diálogo na tela.

class CDialog : public CWnd

Comentários

Há dois tipos de caixas de diálogo: janela restrita e sem janela restrita.Uma caixa de diálogo modal deve ser fechada pelo usuário antes que o aplicativo continua.Uma caixa de diálogo sem janela restrita permite que o usuário exibir a caixa de diálogo e retornar a outra tarefa sem cancelar ou removendo a caixa de diálogo.

A CDialog objeto é uma combinação de um modelo de caixa de diálogo e um CDialog-classe derivada. Use o editor da caixa de diálogo para criar o modelo de caixa de diálogo e armazená-lo em um recurso, use o Assistente para adicionar classe para criar uma classe derivada de CDialog.

Uma caixa de diálogo, como qualquer Outros janela, recebe mensagens do Windows.Na caixa de diálogo, você está interessado principalmente no tratamento de mensagens de notificação de controles da caixa de diálogo, já que é como o usuário interage com sua caixa de diálogo.Use a janela Propriedades para selecionar quais mensagens você quer para alça e ele irão adicionar as entradas de MAP de mensagens apropriado e funções de membro do manipulador de mensagens à classe para você.Você só precisará escrever código específico do aplicativo nas funções de membro do manipulador.

Se preferir, você pode sempre gravar entradas de MAP da mensagem e funções de membro manualmente.

Em todas, exceto a caixa de diálogo mais trivial, você pode adicionar variáveis de membro à sua classe derivada de diálogo para armazenar dados inseridos nos controles da caixa de diálogo pelo usuário ou para exibir dados para o usuário.Você pode usar o Assistente Adicionar variável para criar variáveis de membro e associá-las com controles.Ao mesmo time, escolher um tipo de variável e permissíveis intervalo de valores para cada variável.O Assistente de código adiciona as variáveis de membro à sua classe derivada de diálogo.

Um MAP de dados é gerado para tratar automaticamente a troca de dados entre as variáveis de membro e os controles da caixa de diálogo.O MAP de dados fornece funções que inicializar os controles na caixa de diálogo com os valores apropriados, recuperar os dados e validam os dados.

Para criar uma caixa de diálogo modal, construir um objeto na pilha usando o construtor para sua classe derivada de diálogo e, em seguida, telefonar DoModal Para criar a janela da caixa de diálogo e seus controles. Se você desejar criar uma caixa de diálogo sem janela restrita, telefonar Criar no construtor da sua classe de caixa de diálogo.

Você também pode criar um modelo na memória usando um DLGTEMPLATE estrutura de dados conforme descrito no Windows SDK. Depois que você construir um CDialog objeto, telefonar CreateIndirect para criar uma caixa de diálogo sem janela restrita ou chamar InitModalIndirect and DoModal para criar uma caixa de diálogo modal.

O MAP de troca e validação de dados é gravado em uma substituir de CWnd::DoDataExchange que é adicionado à sua nova classe de caixa de diálogo. Consulte o DoDataExchange função membro CWnd Para obter mais informações sobre a funcionalidade de troca e validação.

O programador e a estrutura de chamam DoDataExchange indiretamente por meio de uma telefonar para CWnd::UpdateData.

A estrutura chama UpdateData Quando o usuário clica no botão OK para fechar uma caixa de diálogo modal. (Os dados não são recuperados se o botão Cancelar é clicado.) A implementação padrão de OnInitDialog também chama UpdateData Para conjunto os valores iniciais dos controles. Você normalmente substituirão OnInitDialog Para obter mais inicializar controles. OnInitDialog é chamado depois que todos os controles de caixa de diálogo são criados e antes da caixa de diálogo caixa é exibida.

Você pode chamar CWnd::UpdateData a qualquer momento durante a execução de uma caixa de diálogo modal ou sem janela restrita.

Se você desenvolver uma caixa de diálogo manualmente, você adiciona as variáveis de membro necessário à classe derivada de caixa de diálogo você mesmo, e adicionar funções de membro para conjunto ou obter esses valores.

Uma caixa de diálogo modal será fechada automaticamente quando o usuário pressiona os botões OK ou cancelar ou quando seu código chama o EndDialog função de membro.

Quando você implementa uma caixa de diálogo sem janela restrita, sempre substituir o OnCancel função de membro e telefonar DestroyWindow de dentro dele. Não telefonar a classe base CDialog::OnCancel, pois ele telefonar s EndDialog, que tornará a caixa de diálogo invisível mas não serão destruídos. Você também deverá substituir PostNcDestroy para caixas de diálogo sem janela restrita excluir Isso, como caixas de diálogo sem janela restrita geralmente são alocadas com novo.Caixas caixa de diálogo modal normalmente são construídas no quadro e não precisam de PostNcDestroy limpeza.

Para obter mais informações sobre o CDialog, consulte:

  • Caixas de diálogo

  • Artigo da Base de dados de Conhecimento Q262954: HOWTO: Criar uma caixa de diálogo redimensionáveis com barras de rolar

Requisitos

Cabeçalho: afxwin.h

Consulte também

Tarefas

Exemplo de DLGCBR32: Demonstra a adição de um barra de status e a barra de ferramentas a caixas de Caixa de diálogo

Exemplo DLGTEMPL: Cria a caixa de diálogo modelos dinamicamente

Referência

Classe CWnd

Gráfico de hierarquia

Outros recursos

Membros CDialog