Condividi tramite


Classe CDialog

La classe base utilizzata per visualizzare le finestre di dialogo dello schermo.

class CDialog : public CWnd

Membri

Costruttori pubblici

Nome

Descrizione

CDialog::CDialog

Costruisce un oggetto CDialog.

Metodi pubblici

Nome

Descrizione

CDialog::Create

Inizializza l'oggetto CDialog. Crea una finestra di dialogo non modale e allegarlo all'oggetto CDialog.

CDialog::CreateIndirect

Crea una finestra di dialogo non modale da un modello di finestra di dialogo in memoria (non alle risorse).

CDialog::DoModal

Chiama una finestra di dialogo modale e restituisce una volta completati.

CDialog::EndDialog

Chiude una finestra di dialogo modale.

CDialog::GetDefID

Ottiene l'id del controllo del pulsante predefinito di una finestra di dialogo.

CDialog::GotoDlgCtrl

Sposta lo stato attivo su un controllo specifico della finestra di dialogo nella finestra di dialogo.

CDialog::InitModalIndirect

Crea una finestra di dialogo modale da un modello di finestra di dialogo in memoria (non alle risorse). I parametri vengono archiviati fino alla funzione DoModal.

CDialog::MapDialogRect

Converte le unità della finestra di dialogo del rettangolo in schermare unità.

CDialog::NextDlgCtrl

Sposta lo stato attivo al controllo successivo della finestra di dialogo nella finestra di dialogo.

CDialog::OnInitDialog

Override per aumentare inizializzazione della finestra di dialogo.

CDialog::OnSetFont

Override per specificare il carattere che un controllo finestra di dialogo da utilizzare quando si estrae il testo.

CDialog::PrevDlgCtrl

Sposta lo stato attivo sul controllo precedente della finestra di dialogo nella finestra di dialogo.

CDialog::SetDefID

Modifica del controllo pulsante predefinito di una finestra di dialogo con un pulsante specificato.

CDialog::SetHelpID

Imposta una guida sensibile al contesto ID della finestra di dialogo.

Metodi protetti

Nome

Descrizione

CDialog::OnCancel

Override di eseguire l'azione di tasto ESC o del pulsante Annulla. L'impostazione predefinita di chiudere la finestra di dialogo e restituisce IDCANCELdi DoModal .

CDialog::OnOK

Override di eseguire l'azione del pulsante OK in una finestra di dialogo modale. L'impostazione predefinita di chiudere la finestra di dialogo e restituisce IDOKdi DoModal.

Note

Le finestre di dialogo sono di due tipi: modali e non modali. Una finestra di dialogo modale deve essere chiusa dall'utente prima dell'applicazione di continuare. Una finestra di dialogo non modale consente all'utente di visualizzare la finestra di dialogo e tornare a un'altra attività senza annullare o rimuovere la finestra di dialogo.

Un oggetto CDialog è una combinazione di modello di finestra di dialogo e CDialogclasse derivata da. Utilizzare l'editor finestre di dialogo per creare il modello di finestra di dialogo e archiviarlo in una risorsa, quindi utilizzare la procedura guidata della classe aggiunta per creare una classe derivata da CDialog.

Una finestra di dialogo, come qualsiasi altra finestra, riceve i messaggi di Windows. In una finestra di dialogo, poiché è particolarmente desidera sfruttare i messaggi di notifica di gestione dei comandi della finestra di dialogo che indica il modo in cui l'utente interagisce con la finestra di dialogo. Utilizzare la Finestra Proprietà per selezionare i messaggi che si desidera gestire e verranno aggiunte le voci della mappa messaggi e le funzioni membro per la gestione dei messaggi appropriati alla classe per l'utente. È sufficiente scrivere codice specifico dell'applicazione nelle funzioni membro del gestore.

Se si preferisce, è possibile scrivere sempre le voci della mappa messaggi e le funzioni membro manualmente.

In tutto tranne la finestra di dialogo più semplice, aggiungere le variabili membro alla classe derivata della finestra di dialogo all'archivio dati immessi nei controlli della finestra di dialogo dall'utente o per visualizzare i dati per l'utente. È possibile utilizzare la procedura guidata variabile di aggiunta per creare le variabili membro e associarli ai controlli. Contemporaneamente, si sceglie un tipo di variabile e un intervallo consentito di valori per ciascuna variabile. La creazione guidata codice aggiunge le variabili membro alla classe derivata della finestra di dialogo.

Un mapping di dati viene generato automaticamente per gestire lo scambio di dati tra le variabili membro e i controlli della finestra di dialogo. Il mapping di dati fornisce funzioni che consentono di inizializzare i controlli nella finestra di dialogo con i valori appropriati, recuperare i dati e convalida di dati.

Per creare una finestra di dialogo modale, costruire un oggetto nello stack utilizzando il costruttore per la classe derivata della finestra di dialogo e chiamare DoModal per creare la finestra di dialogo e i relativi controlli. Se si desidera creare una finestra di dialogo non modale, chiamare Crea nel costruttore della classe della finestra di dialogo.

È inoltre possibile creare un modello in memoria utilizzando una struttura di dati DLGTEMPLATE come descritto in Windows SDK. Dopo la costruzione di un oggetto CDialog, chiamare CreateIndirect per creare una finestra di dialogo non modale, o la chiamata InitModalIndirect e DoModal per creare una finestra di dialogo modale.

Il mapping di dati di convalida e di scambio viene scritto nell'override CWnd::DoDataExchange aggiunti alla nuova classe della finestra di dialogo. Vedere la funzione membro DoDataExchange in CWnd per ulteriori informazioni sulla funzionalità di convalida e di scambio.

Sia il programmatore che il framework chiama indirettamente DoDataExchange con una chiamata a CWnd::UpdateData.

Il framework chiama UpdateData quando l'utente fa clic sul pulsante OK per chiudere la finestra di dialogo modale. (I dati non vengono recuperati se il pulsante Annulla viene selezionato.) L'implementazione predefinita OnInitDialog chiama anche UpdateData per impostare i valori iniziali dei controlli. In genere l'override OnInitDialog ulteriormente per inizializzare i controlli. OnInitDialog viene chiamato dopo che tutti i controlli della finestra di dialogo viene creato e prima della finestra di dialogo.

È possibile chiamare CWnd::UpdateData in qualsiasi momento durante l'esecuzione di un oggetto o una finestra di dialogo non modale.

Se si compila manualmente una finestra di dialogo, aggiungere le variabili membro necessari alla classe derivata della finestra di dialogo manualmente e aggiungere le funzioni membro per impostare o ottenere questi valori.

Una finestra di dialogo modale viene chiuso automaticamente quando l'utente preme la scelta dei pulsanti OK o Annulla o quando il codice chiama la funzione membro EndDialog.

Quando si distribuisce una finestra di dialogo non modale, sempre eseguire l'override della funzione membro OnCancel e chiamare DestroyWindow da. Non chiamare la classe base CDialog::OnCancel, perché chiama EndDialog, che consente la finestra di dialogo invisibile ma non viene distrutto. È inoltre necessario eseguire l'override PostNcDestroy per le finestre di dialogo non modale per eliminare this, poiché le finestre di dialogo non modale genere vengono allocate con new. Finestre di dialogo modali sono in genere costruite nel frame e non richiedono la pulizia PostNcDestroy.

Per ulteriori informazioni su CDialog, vedere:

  • Finestre di dialogo

  • Articolo della Knowledge Base Q262954: HOWTO: Creare una finestra di dialogo di Resizeable con le barre di scorrimento

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CDialog

Requisiti

Intestazione: afxwin.h

Vedere anche

Riferimenti

Classe CWnd

Grafico delle gerarchie

Concetti

MFC campione DLGCBR32

Esempio DLGTEMPL MFC