Classe CDialog
La classe base utilizzata per visualizzare le finestre di dialogo dello schermo.
class CDialog : public CWnd
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruisce un oggetto CDialog. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Inizializza l'oggetto CDialog. Crea una finestra di dialogo non modale e allegarlo all'oggetto CDialog. |
|
Crea una finestra di dialogo non modale da un modello di finestra di dialogo in memoria (non alle risorse). |
|
Chiama una finestra di dialogo modale e restituisce una volta completati. |
|
Chiude una finestra di dialogo modale. |
|
Ottiene l'id del controllo del pulsante predefinito di una finestra di dialogo. |
|
Sposta lo stato attivo su un controllo specifico della finestra di dialogo nella finestra di dialogo. |
|
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. |
|
Converte le unità della finestra di dialogo del rettangolo in schermare unità. |
|
Sposta lo stato attivo al controllo successivo della finestra di dialogo nella finestra di dialogo. |
|
Override per aumentare inizializzazione della finestra di dialogo. |
|
Override per specificare il carattere che un controllo finestra di dialogo da utilizzare quando si estrae il testo. |
|
Sposta lo stato attivo sul controllo precedente della finestra di dialogo nella finestra di dialogo. |
|
Modifica del controllo pulsante predefinito di una finestra di dialogo con un pulsante specificato. |
|
Imposta una guida sensibile al contesto ID della finestra di dialogo. |
Metodi protetti
Nome |
Descrizione |
---|---|
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 . |
|
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:
Articolo della Knowledge Base Q262954: HOWTO: Creare una finestra di dialogo di Resizeable con le barre di scorrimento
Gerarchia di ereditarietà
CDialog
Requisiti
Intestazione: afxwin.h