CDialog

A classe CDialog é a classe base usada para exibir caixas de diálogo na tela. Caixas de diálogo são de dois tipos: modal e sem janela restrita. Uma caixa de diálogo modal deve ser fechada pelo usuário antes do aplicativo continua. Uma caixa de diálogo sem janela restrita permite que o usuário exibir a caixa de diálogo e retornar à outra tarefa sem cancelar ou remover a caixa de diálogo.

Um objeto de CDialog é uma combinação de um modelo de diálogo e um CDialog-classe derivada. Use o editor de diálogo para criar o modelo de diálogo e armazená-lo em um recurso e, em seguida, usar ClassWizard para criar uma classe derivada de CDialog.

Uma caixa de diálogo, como qualquer outra janela, recebe mensagens do Windows. Na caixa de diálogo, você está particularmente interessado em manipulação 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. ClassWizard navega através das mensagens potenciais geradas por cada controle na caixa de diálogo, e você pode selecionar quais mensagens você deseja manipular. ClassWizard, em seguida, adiciona as entradas de mapa de mensagem apropriado e funções de membro de manipulador de mensagem para a Novo classe para você. Você só precisa escrever código específico do aplicativo nas funções de membro manipulador.

Se preferir, você pode sempre gravar entradas de mapa de Mensagemens e funções de si mesmo em vez de usar ClassWizard.

Em todos, mas a caixa de diálogo mais trivial, você adiciona variáveis de membro para sua classe de caixa de diálogo derivada para armazenar dados inseridos nos controles da caixa de diálogo pelo usuário ou para exibir dados do usuário. ClassWizard navega através desses controles na caixa de diálogo que podem ser mapeados para dados e solicita que você crie uma variável de membro para cada controle. Ao mesmo tempo, você escolhe um tipo de variável e admissível intervalo de valores para cada variável. ClassWizard adiciona as variáveis de membro para sua classe derivada de caixa de diálogo.

ClassWizard grava um mapa de dados para tratar automaticamente a troca de dados entre as variáveis de membro e controles da caixa de diálogo. O mapa de dados fornece funções que inicializar os controles na caixa de diálogo com os valores adequados, recuperar os dados e validam os dados.

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

Você também pode criar um modelo na memória usando uma DLGTEMPLATE dados estrutura conforme descrito na documentação do Win32 SDK. Após você criar um objeto de CDialog , chamada CreateIndirect para criar uma caixa de diálogo sem janela restrita ou chamar InitModalIndirect e DoModal para criar uma caixa de diálogo modal.

ClassWizard grava o mapa de dados exchange e validação em uma Substituir do CWnd:: DoDataExchange que ClassWizard adiciona à sua classe de caixa de diálogo novo. Consulte a função de membro de DoDataExchange em CWnd para obter mais informações sobre a funcionalidade de troca e validação.

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

A estrutura chama UpdateData quando o usuário clica no botão OK para fechar a 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 definir os valores iniciais dos controles. Você normalmente substituir OnInitDialog mais inicializar controles. OnInitDialog é chamado depois que todos os controles de caixa de diálogo são criados e pouco antes da caixa de diálogo caixa é exibida.

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

Se você desenvolver uma caixa de diálogo à mão, você adicionar as variáveis de membro necessárias para a classe derivada de caixa de diálogo você mesmo, e você adiciona funções de membro para definir ou obter esses valores.

Para obter mais informações sobre ClassWizard, consulte Using ClassWizard no Guia do programador do Visual C++.

Chamada CWinApp::SetDialogBkColor para definir a cor de plano de fundo para as caixas de diálogo em seu aplicativo.

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

Quando você implementa uma caixa de diálogo sem janela restrita, sempre substituir a função de membro OnCancel e chamar DestroyWindow de dentro dele. Não chame a classe base CDialog:: OnCancel, porque ele chama EndDialog, que irá tornar a caixa de diálogo invisível mas não irá destruí-lo. Você também deve substituir PostNcDestroy para caixas de diálogo sem janela restrita para excluir este, uma vez que as caixas de diálogo sem janela restrita geralmente são alocadas com novo. Caixas de diálogo modais geralmente são construídas sobre o quadro e não precisa de limpeza PostNcDestroy.

Para obter mais informações sobre CDialog, consulte o artigo Caixa de diálogo caixa de tópicos no Guia do programador do Visual C++.

# include lt;afxwin.h>

Membros da classeClasse base | Gráfico de hierarquia

Samples    MFC Sample DBFETCH MFC Sample DLGCBR32 MFC Sample DLGTEMPL MFC Sample EXTBIND MFC Sample FTPTREE MFC Sample HELLO MFC Sample MDIBIND MFC Sample VCTERM

Index