Classe CDialog

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

Sintaxe

class CDialog : public CWnd

Membros

Construtores públicos

Nome Descrição
CDialog::CDialog Constrói um objeto CDialog.

Métodos públicos

Nome Descrição
CDialog::Create Inicializa o objeto CDialog. Cria uma caixa de diálogo de modelagem e a anexa ao CDialog objeto.
CDialog::CreateIndirect Cria uma caixa de diálogo modeless a partir de um modelo de caixa de diálogo na memória (não baseado em recurso).
CDialog::D oModal Chama uma caixa de diálogo modal e retorna quando terminar.
CDialog::EndDialog Fecha uma caixa de diálogo modal.
CDialog::GetDefID Obtém a ID do controle pushbutton padrão para uma caixa de diálogo.
CDialog::GotoDlgCtrl Move o foco para um controle de caixa de diálogo especificado na caixa de diálogo.
CDialog::InitModalIndirect Cria uma caixa de diálogo modal a partir de um modelo de caixa de diálogo na memória (não baseado em recurso). Os parâmetros são armazenados até que a função DoModal seja chamada.
CDialog::MapDialogRect Converte as unidades da caixa de diálogo de um retângulo em unidades de tela.
CDialog::NextDlgCtrl Move o foco para o próximo controle da caixa de diálogo na caixa de diálogo.
CDialog::OnInitDialog Substitua para aumentar a inicialização da caixa de diálogo.
CDialog::OnSetFont Substitua para especificar a fonte que um controle de caixa de diálogo deve usar quando ele desenha texto.
CDialog::P revDlgCtrl Move o foco para o controle da caixa de diálogo anterior na caixa de diálogo.
CDialog::SetDefID Altera o controle de pushbutton padrão de uma caixa de diálogo para um botão de push especificado.
CDialog::SetHelpID Define uma ID de ajuda que diferencia contexto para a caixa de diálogo.

Métodos Protegidos

Nome Descrição
CDialog::OnCancel Substitua para executar o botão Cancelar ou a ação de chave ESC. O padrão fecha a caixa de diálogo e DoModal retorna IDCANCEL.
CDialog::OnOK Substitua para executar a ação do botão OK em uma caixa de diálogo modal. O padrão fecha a caixa de diálogo e DoModal retorna IDOK.

Comentários

As caixas de diálogo são de dois tipos: modal e modelagem. Uma caixa de diálogo modal deve ser fechada pelo usuário antes que o aplicativo continue. Uma caixa de diálogo de modelagem permite que o usuário exiba a caixa de diálogo e retorne a outra tarefa sem cancelar ou remover a caixa de diálogo.

Um CDialog objeto é uma combinação de um modelo de caixa de diálogo e uma CDialogclasse derivada. Use o editor de diálogo para criar o modelo de caixa de diálogo e armazená-lo em um recurso e, em seguida, use o assistente Adicionar Classe para criar uma classe derivada de CDialog.

Uma caixa de diálogo, como qualquer outra janela, recebe mensagens de Windows. Em uma caixa de diálogo, você está particularmente interessado em lidar com mensagens de notificação dos controles da caixa de diálogo, pois é assim que o usuário interage com sua caixa de diálogo. Use o Assistente de Classe para selecionar quais mensagens você deseja manipular e ele adicionará as entradas de mapa de mensagens apropriadas e as funções de membro do manipulador de mensagens à classe para você. Você só precisa escrever código específico do aplicativo nas funções de membro do manipulador.

Se preferir, você sempre poderá escrever entradas de mapa de mensagens e funções de membro manualmente.

Em todas, exceto na caixa de diálogo mais trivial, você adiciona variáveis de membro à classe de diálogo derivada 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 membros e associá-las a controles. Ao mesmo tempo, você escolhe um tipo de variável e um intervalo permitido de valores para cada variável. O assistente de código adiciona as variáveis de membro à classe de diálogo derivada.

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

Para criar uma caixa de diálogo modal, construa um objeto na pilha usando o construtor para sua classe de diálogo derivada e, em seguida, chame DoModal para criar a janela de diálogo e seus controles. Se você quiser criar uma caixa de diálogo de modelagem, chame Create o construtor da classe de diálogo.

Você também pode criar um modelo na memória usando uma estrutura de dados DLGTEMPLATE, conforme descrito no SDK do Windows. Depois de construir um CDialog objeto, chame CreateIndirect para criar uma caixa de diálogo de modelagem ou chame InitModalIndirect e DoModal para criar uma caixa de diálogo modal.

O mapa de dados de troca e validação é gravado em uma substituição que CWnd::DoDataExchange é adicionada à sua nova classe de diálogo. Consulte a função CWnd membro DoDataExchange 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 uma caixa de diálogo modal. (Os dados não serão recuperados se o botão Cancelar for clicado.) A implementação padrão do OnInitDialog também chama UpdateData para definir os valores iniciais dos controles. Normalmente, você substitui OnInitDialog para inicializar ainda mais os controles. OnInitDialog é chamado depois que todos os controles de caixa de diálogo são criados e pouco antes da caixa de diálogo ser exibida.

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

Se você desenvolver uma caixa de diálogo manualmente, adicione as variáveis de membro necessárias à classe de caixa de diálogo derivada e adicione funções de membro para definir ou obter esses valores.

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

Ao implementar uma caixa de diálogo de modelagem, sempre substitua a OnCancel função membro e chame DestroyWindow de dentro dela. Não chame a classe CDialog::OnCancelbase, porque ela chama EndDialog, o que tornará a caixa de diálogo invisível, mas não a destruirá. Você também deve substituir PostNcDestroy as caixas de diálogo modeless para excluir this, uma vez que as caixas de diálogo modeless geralmente são alocadas com new. As caixas de diálogo modal geralmente são construídas no quadro e não precisam de PostNcDestroy limpeza.

Para obter mais informações sobre CDialog, consulte Caixas de Diálogo.

Hierarquia de herança

Cobject

Ccmdtarget

CWnd

CDialog

Requisitos

Cabeçalho: afxwin.h

CDialog::CDialog

Para construir uma caixa de diálogo modal baseada em recurso, chame qualquer forma pública do construtor.

explicit CDialog(
    LPCTSTR lpszTemplateName,
    CWnd* pParentWnd = NULL);

explicit CDialog(
    UINT nIDTemplate,
    CWnd* pParentWnd = NULL);

CDialog();

Parâmetros

lpszTemplateName
Contém uma cadeia de caracteres terminada em nulo que é o nome de um recurso de modelo de caixa de diálogo.

Nidtemplate
Contém o número de ID de um recurso de modelo de caixa de diálogo.

Pparentwnd
Aponta para o objeto de janela pai ou proprietário (do tipo CWnd) ao qual o objeto de caixa de diálogo pertence. Se for NULL, a janela pai do objeto de caixa de diálogo será definida como a janela principal do aplicativo.

Comentários

Uma forma do construtor fornece acesso ao recurso de caixa de diálogo por nome de modelo. O outro construtor fornece acesso por número de ID de modelo, geralmente com um prefixo IDD_ (por exemplo, IDD_DIALOG1).

Para construir uma caixa de diálogo modal a partir de um modelo na memória, primeiro invoque o construtor sem parâmetros, protegido e, em seguida, chame InitModalIndirect.

Depois de construir uma caixa de diálogo modal com um dos métodos acima, chame DoModal.

Para construir uma caixa de diálogo modeless, use a forma protegida do CDialog construtor. O construtor é protegido porque você deve derivar sua própria classe de caixa de diálogo para implementar uma caixa de diálogo modeless. A construção de uma caixa de diálogo modeless é um processo de duas etapas. Primeiro chame o construtor; em seguida, chame a Create função membro para criar uma caixa de diálogo baseada em recurso ou chame CreateIndirect para criar a caixa de diálogo a partir de um modelo na memória.

CDialog::Create

Chame Create para criar uma caixa de diálogo modeless usando um modelo de caixa de diálogo de um recurso.

virtual BOOL Create(
    LPCTSTR lpszTemplateName,
    CWnd* pParentWnd = NULL);

virtual BOOL Create(
    UINT nIDTemplate,
    CWnd* pParentWnd = NULL);

Parâmetros

lpszTemplateName
Contém uma cadeia de caracteres terminada em nulo que é o nome de um recurso de modelo de caixa de diálogo.

Pparentwnd
Aponta para o objeto de janela pai (do tipo CWnd) ao qual o objeto de caixa de diálogo pertence. Se for NULL, a janela pai do objeto de caixa de diálogo será definida como a janela principal do aplicativo.

Nidtemplate
Contém o número de ID de um recurso de modelo de caixa de diálogo.

Valor Retornado

Ambos os formulários retornarão sem zero se a criação e a inicialização da caixa de diálogo tiverem sido bem-sucedidas; caso contrário, 0.

Comentários

Você pode colocar a chamada dentro Create do construtor ou chamá-la depois que o construtor for invocado.

Duas formas da Create função membro são fornecidas para acesso ao recurso de modelo de caixa de diálogo por nome de modelo ou número de ID de modelo (por exemplo, IDD_DIALOG1).

Para qualquer formulário, passe um ponteiro para o objeto de janela pai. Se pParentWnd for NULL, a caixa de diálogo será criada com a janela pai ou proprietário definida como a janela principal do aplicativo.

A Create função membro retorna imediatamente após criar a caixa de diálogo.

Use o estilo WS_VISIBLE no modelo de caixa de diálogo se a caixa de diálogo deve aparecer quando a janela pai for criada. Caso contrário, você deve chamar ShowWindow. Para obter mais estilos de caixa de diálogo e seu aplicativo, consulte a estrutura DLGTEMPLATE no SDK Windows e estilos de janela na referência MFC.

Use a CWnd::DestroyWindow função para destruir uma caixa de diálogo criada pela Create função.

Exemplo

void CMyDialog::OnMenuShowSimpleDialog()
{
   //m_pSimpleDialog initialized to NULL in the constructor of CMyDialog class
   m_pSimpleDlg = new CSimpleDlg();
   //Check if new succeeded and we got a valid pointer to a dialog object
   if (m_pSimpleDlg != NULL)
   {
      BOOL ret = m_pSimpleDlg->Create(IDD_SIMPLEDIALOG, this);

      if (!ret) //Create failed.
      {
         AfxMessageBox(_T("Error creating Dialog"));
      }

      m_pSimpleDlg->ShowWindow(SW_SHOW);
   }
   else
   {
      AfxMessageBox(_T("Error Creating Dialog Object"));
   }
}

CDialog::CreateIndirect

Chame essa função de membro para criar uma caixa de diálogo modeless a partir de um modelo de caixa de diálogo na memória.

virtual BOOL CreateIndirect(
    LPCDLGTEMPLATE lpDialogTemplate,
    CWnd* pParentWnd = NULL,
    void* lpDialogInit = NULL);

virtual BOOL CreateIndirect(
    HGLOBAL hDialogTemplate,
    CWnd* pParentWnd = NULL);

Parâmetros

lpDialogTemplate
Aponta para a memória que contém um modelo de caixa de diálogo usado para criar a caixa de diálogo. Esse modelo está na forma de uma estrutura DLGTEMPLATE e informações de controle, conforme descrito no SDK do Windows.

Pparentwnd
Aponta para o objeto de janela pai do objeto de caixa de diálogo (do tipo CWnd). Se for NULL, a janela pai do objeto de caixa de diálogo será definida como a janela principal do aplicativo.

lpDialogInit
Aponta para um recurso DLGINIT.

hDialogTemplate
Contém um identificador para memória global que contém um modelo de caixa de diálogo. Esse modelo está na forma de uma DLGTEMPLATE estrutura e dados para cada controle na caixa de diálogo.

Valor Retornado

Não zero se a caixa de diálogo foi criada e inicializada com êxito; caso contrário, 0.

Comentários

A CreateIndirect função membro retorna imediatamente após criar a caixa de diálogo.

Use o estilo WS_VISIBLE no modelo de caixa de diálogo se a caixa de diálogo deve aparecer quando a janela pai for criada. Caso contrário, você deve chamar ShowWindow para fazer com que ele apareça. Para obter mais informações sobre como você pode especificar outros estilos de caixa de diálogo no modelo, consulte a estrutura DLGTEMPLATE no SDK do Windows.

Use a CWnd::DestroyWindow função para destruir uma caixa de diálogo criada pela CreateIndirect função.

As caixas de diálogo que contêm controles ActiveX exigem informações adicionais fornecidas em um recurso DLGINIT.

CDialog::D oModal

Chame essa função de membro para invocar a caixa de diálogo modal e retornar o resultado da caixa de diálogo quando terminar.

virtual INT_PTR DoModal();

Valor Retornado

Um int valor que especifica o valor do parâmetro nResult que foi passado para a função de membro CDialog::EndDialog , que é usada para fechar a caixa de diálogo. O valor retornado será -1 se a função não puder criar a caixa de diálogo ou IDABORT se ocorrer algum outro erro, nesse caso, a janela de saída conterá informações de erro do GetLastError.

Comentários

Essa função membro lida com toda a interação com o usuário enquanto a caixa de diálogo está ativa. Isso é o que torna a caixa de diálogo modal; ou seja, o usuário não pode interagir com outras janelas até que a caixa de diálogo seja fechada.

Se o usuário clicar em um dos pushbuttons na caixa de diálogo, como OK ou Cancelar, uma função de membro do manipulador de mensagens, como OnOK ou OnCancel, será chamada para tentar fechar a caixa de diálogo. A função membro padrão OnOK validará e atualizará os dados da caixa de diálogo e fechará a caixa de diálogo com o IDOK de resultado e a função de membro padrão OnCancel fechará a caixa de diálogo com IDCANCEL de resultado sem validar ou atualizar os dados da caixa de diálogo. Você pode substituir essas funções de manipulador de mensagens para alterar seu comportamento.

Observação

PreTranslateMessage agora é chamado para processamento de mensagem de caixa de diálogo modal.

Exemplo

void CMyDialog::OnMenuShowAboutDialog()
{
   // Construct the dialog box passing the
   // ID of the dialog template resource
   CDialog aboutDlg(IDD_ABOUTBOX);

   // Create and show the dialog box
   INT_PTR nRet = -1;
   nRet = aboutDlg.DoModal();

   // Handle the return value from DoModal
   switch (nRet)
   {
   case -1:
      AfxMessageBox(_T("Dialog box could not be created!"));
      break;
   case IDABORT:
      // Do something
      break;
   case IDOK:
      // Do something
      break;
   case IDCANCEL:
      // Do something
      break;
   default:
      // Do something
      break;
   };
}

CDialog::EndDialog

Chame essa função de membro para encerrar uma caixa de diálogo modal.

void EndDialog(int nResult);

Parâmetros

Nresult
Contém o valor a ser retornado da caixa de diálogo para o chamador de DoModal.

Comentários

Essa função de membro retorna nResult como o valor retornado de DoModal. Você deve usar a função para concluir o EndDialog processamento sempre que uma caixa de diálogo modal for criada.

Você pode chamar EndDialog a qualquer momento, mesmo no OnInitDialog, nesse caso, você deve fechar a caixa de diálogo antes que ela seja mostrada ou antes que o foco de entrada seja definido.

EndDialog não fecha a caixa de diálogo imediatamente. Em vez disso, ele define um sinalizador que direciona a caixa de diálogo para fechar assim que o manipulador de mensagens atual retorna.

Exemplo

void CMyDialog::OnMenuShowSimpleModal()
{
   CSimpleDlg myDlg;
   INT_PTR nRet = myDlg.DoModal();

   if (nRet == IDOK || nRet == 5)
   {
      AfxMessageBox(_T("Dialog closed successfully"));
   }
}
void CSimpleDlg::OnRButtonUp(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   // Do something

   int nRet = point.x; // Just any value would do!
   EndDialog(nRet);    // This value is returned by DoModal!

   // Do something

   return; // Dialog closed and DoModal returns only here!
}

CDialog::GetDefID

Chame a GetDefID função membro para obter a ID do controle pushbutton padrão para uma caixa de diálogo.

DWORD GetDefID() const;

Valor Retornado

Um valor de 32 bits ( DWORD). Se o pushbutton padrão tiver um valor de ID, a palavra de alta ordem conterá DC_HASDEFID e a palavra de baixa ordem conterá o valor da ID. Se o pushbutton padrão não tiver um valor de ID, o valor retornado será 0.

Comentários

Geralmente, esse é um botão OK.

CDialog::GotoDlgCtrl

Move o foco para o controle especificado na caixa de diálogo.

void GotoDlgCtrl(CWnd* pWndCtrl);

Parâmetros

pWndCtrl
Identifica a janela (controle) que deve receber o foco.

Comentários

Para obter um ponteiro para o controle (janela filho) passar como pWndCtrl, chame a CWnd::GetDlgItem função membro, que retorna um ponteiro para um objeto CWnd .

Exemplo

Consulte o exemplo de CWnd::GetDlgItem.

CDialog::InitModalIndirect

Chame essa função de membro para inicializar um objeto de diálogo modal usando um modelo de caixa de diálogo que você constrói na memória.

BOOL InitModalIndirect(
    LPCDLGTEMPLATE lpDialogTemplate,
    CWnd* pParentWnd = NULL,
    void* lpDialogInit = NULL);

    BOOL InitModalIndirect(
    HGLOBAL hDialogTemplate,
    CWnd* pParentWnd = NULL);

Parâmetros

lpDialogTemplate
Aponta para a memória que contém um modelo de caixa de diálogo usado para criar a caixa de diálogo. Esse modelo está na forma de uma estrutura DLGTEMPLATE e informações de controle, conforme descrito no SDK Windows.

hDialogTemplate
Contém um identificador para a memória global que contém um modelo de caixa de diálogo. Esse modelo está na forma de uma DLGTEMPLATE estrutura e dados para cada controle na caixa de diálogo.

Pparentwnd
Aponta para o objeto de janela pai ou proprietário (do tipo CWnd) ao qual o objeto de caixa de diálogo pertence. Se for NULL, a janela pai do objeto de caixa de diálogo será definida como a janela principal do aplicativo.

lpDialogInit
Aponta para um recurso DLGINIT.

Valor Retornado

Não zero se o objeto de caixa de diálogo foi criado e inicializado com êxito; caso contrário, 0.

Comentários

Para criar uma caixa de diálogo modal indiretamente, primeiro aloque um bloco global de memória e preencha-o com o modelo da caixa de diálogo. Em seguida, chame o construtor vazio CDialog para construir o objeto de caixa de diálogo. Em seguida, chame InitModalIndirect para armazenar o identificador para o modelo de caixa de diálogo na memória. A caixa de diálogo Windows é criada e exibida posteriormente, quando a função membro DoModal é chamada.

Caixas de diálogo que contêm controles ActiveX exigem informações adicionais fornecidas em um recurso DLGINIT.

CDialog::MapDialogRect

Chame para converter as unidades da caixa de diálogo de um retângulo em unidades de tela.

void MapDialogRect(LPRECT lpRect) const;

Parâmetros

Lprect
Aponta para uma estrutura RECT ou objeto CRect que contém as coordenadas da caixa de diálogo a serem convertidas.

Comentários

As unidades de caixa de diálogo são declaradas em termos da unidade base da caixa de diálogo atual derivada da largura média e da altura dos caracteres na fonte usada para o texto da caixa de diálogo. Uma unidade horizontal é um quarto da unidade de largura base da caixa de diálogo e uma unidade vertical é um oitavo da unidade de altura base da caixa de diálogo.

A GetDialogBaseUnits função Windows retorna informações de tamanho para a fonte do sistema, mas você pode especificar uma fonte diferente para cada caixa de diálogo se usar o estilo DS_SETFONT no arquivo de definição de recurso. A MapDialogRect função Windows usa a fonte apropriada para esta caixa de diálogo.

A MapDialogRect função membro substitui as unidades da caixa de diálogo em lpRect por unidades de tela (pixels) para que o retângulo possa ser usado para criar uma caixa de diálogo ou posicionar um controle dentro de uma caixa.

CDialog::NextDlgCtrl

Move o foco para o próximo controle na caixa de diálogo.

void NextDlgCtrl() const;

Comentários

Se o foco estiver no último controle na caixa de diálogo, ele passará para o primeiro controle.

CDialog::OnCancel

A estrutura chama esse método quando o usuário clica em Cancelar ou pressiona a tecla ESC em uma caixa de diálogo modal ou de modelagem.

virtual void OnCancel();

Comentários

Substitua esse método para executar ações (como restaurar dados antigos) quando um usuário fechar a caixa de diálogo clicando em Cancelar ou atingindo a tecla ESC. O padrão fecha uma caixa de diálogo modal chamando EndDialog e fazendo com que DoModal retorne IDCANCEL.

Se você implementar o botão Cancelar em uma caixa de diálogo de modelagem, deverá substituir o OnCancel método e chamar DestroyWindow dentro dele. Não chame o método de classe base, porque ele chama EndDialog, o que tornará a caixa de diálogo invisível, mas não a destruirá.

Observação

Você não pode substituir esse método quando usa um CFileDialog objeto em um programa compilado em Windows XP. Para obter mais informações sobre CFileDialog, consulte a Classe CFileDialog.

Exemplo

void CSimpleDlg::OnCancel()
{
   // TODO: Add extra cleanup here

   // Ensure that you reset all the values back to the
   // ones before modification. This handler is called
   // when the user doesn't want to save the changes.

   if (AfxMessageBox(_T("Are you sure you want to abort the changes?"),
                     MB_YESNO) == IDNO)
   {
      // Give the user a chance if he has unknowingly hit the
      // Cancel button. If he says No, return. Don't reset. If
      // Yes, go ahead and reset the values and close the dialog.
      return;
   }

   m_nMyValue = m_nPrevValue;
   m_pMyString = NULL;

   CDialog::OnCancel();
}

CDialog::OnInitDialog

Esse método é chamado em resposta à WM_INITDIALOG mensagem.

virtual BOOL OnInitDialog();

Valor Retornado

Especifica se o aplicativo definiu o foco de entrada como um dos controles na caixa de diálogo. Se OnInitDialog retornar não zero, Windows definirá o foco de entrada como o local padrão, o primeiro controle na caixa de diálogo. O aplicativo só poderá retornar 0 se tiver definido explicitamente o foco de entrada como um dos controles na caixa de diálogo.

Comentários

Windows envia a WM_INITDIALOG mensagem para a caixa de diálogo durante as chamadas Create, CreateIndirect ou DoModal, que ocorrem imediatamente antes da caixa de diálogo ser exibida.

Substitua esse método se você quiser executar o processamento especial quando a caixa de diálogo for inicializada. Na versão substituída, primeiro chame a classe OnInitDialog base, mas ignore seu valor retornado. Normalmente, você retornará TRUE do método substituído.

Windows chama a OnInitDialog função usando o procedimento de caixa de diálogo global padrão comum a todas as caixas de diálogo da Biblioteca de Classes do Microsoft Foundation. Ele não chama essa função por meio do mapa de mensagens e, portanto, você não precisa de uma entrada de mapa de mensagem para esse método.

Observação

Você não pode substituir esse método quando usa um CFileDialog objeto em um programa compilado em Windows Vista ou sistemas operacionais posteriores. Para obter mais informações sobre alterações em CFileDialog Windows Vista e posteriores, consulte a Classe CFileDialog.

Exemplo

BOOL CSimpleDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   // TODO: Add extra initialization here
   m_cMyEdit.SetWindowText(_T("My Name")); // Initialize control values
   m_cMyList.ShowWindow(SW_HIDE);          // Show or hide a control, etc.

   return TRUE; // return TRUE unless you set the focus to a control
   // EXCEPTION: OCX Property Pages should return FALSE
}

CDialog::OnOK

Chamado quando o usuário clica no botão OK (o botão com uma ID de IDOK).

virtual void OnOK();

Comentários

Substitua esse método para executar ações quando o botão OK for ativado. Se a caixa de diálogo incluir validação e troca de dados automáticas, a implementação padrão desse método validará os dados da caixa de diálogo e atualizará as variáveis apropriadas em seu aplicativo.

Se você implementar o botão OK em uma caixa de diálogo de modelagem, deverá substituir o OnOK método e chamar DestroyWindow dentro dele. Não chame o método de classe base, pois ele chama EndDialog , que torna a caixa de diálogo invisível, mas não a destrói.

Observação

Você não pode substituir esse método quando usa um CFileDialog objeto em um programa compilado em Windows XP. Para obter mais informações sobre CFileDialog, consulte a Classe CFileDialog.

Exemplo

void CSimpleDlg::OnOK()
{
   // TODO: Add extra validation here

   // Ensure that your UI got the necessary input
   // from the user before closing the dialog. The
   // default OnOK will close this.
   if (m_nMyValue == 0) // Is a particular field still empty?
   {
      // Inform the user that he can't close the dialog without
      // entering the necessary values and don't close the
      // dialog.
      AfxMessageBox(_T("Please enter a value for MyValue"));
      return;
   }

   CDialog::OnOK(); // This will close the dialog and DoModal will return.
}

CDialog::OnSetFont

Especifica a fonte que um controle de caixa de diálogo usará ao desenhar texto.

Virtual void OnSetFont(CFont* pFont);

Parâmetros

pFont
[in] Especifica um ponteiro para a fonte que será usado como a fonte padrão para todos os controles nesta caixa de diálogo.

Comentários

A caixa de diálogo usará a fonte especificada como o padrão para todos os seus controles.

O editor de caixa de diálogo normalmente define a fonte da caixa de diálogo como parte do recurso de modelo de caixa de diálogo.

Observação

Você não pode substituir esse método quando usa um CFileDialog objeto em um programa compilado em Windows Vista ou sistemas operacionais posteriores. Para obter mais informações sobre alterações em CFileDialog Windows Vista e posteriores, consulte a Classe CFileDialog.

CDialog::P revDlgCtrl

Define o foco para o controle anterior na caixa de diálogo.

void PrevDlgCtrl() const;

Comentários

Se o foco estiver no primeiro controle da caixa de diálogo, ele passará para o último controle da caixa.

CDialog::SetDefID

Altera o controle de pushbutton padrão para uma caixa de diálogo.

void SetDefID(UINT nID);

Parâmetros

nID
Especifica a ID do controle pushbutton que se tornará o padrão.

CDialog::SetHelpID

Define uma ID de ajuda sensível ao contexto para a caixa de diálogo.

void SetHelpID(UINT nIDR);

Parâmetros

nIDR
Especifica a ID de ajuda sensível ao contexto.

Confira também

Exemplo de MFC DLGCBR32
MFC Sample DLGTEMPL
Classe CWnd
Gráfico de Hierarquia