La struttura DLGTEMPLATEEX non è definita in ogni file di intestazione standard. La definizione della struttura è fornita qui di spiegare il formato di un modello esteso per un dialogo.
Un modello di finestra di dialogo esteso inizia con un colpo di testa DLGTEMPLATEEX che descrive la finestra di dialogo e specifica il numero di controlli nella finestra di dialogo. Per ogni controllo in una finestra di dialogo, un modello di finestra di dialogo esteso ha un blocco di dati che utilizza il formato DLGITEMTEMPLATEEX per descrivere il controllo.
typedef struct {WORD dlgVer; PAROLA di firma; DWORD helpID; DWORD exStyle; Stile DWORD; WORD cDlgItems; breve x; y breve; cx breve; cy breve; menu di sz_Or_Ord; / / nome o ordinale della risorsa di menu sz_Or_Ord windowClass; / / nome o per ordinale di una classe di finestra Titolo WCHAR [titleLen]; / / titolo stringa nella finestra di dialogo pointsize breve; / / solo se è impostato il flag DS_SETFONT peso breve; / / solo se è impostato il flag DS_SETFONT breve bItalic; / / solo se è impostato il flag DS_SETFONT Tipo di carattere WCHAR [fontLen]; / / nome del carattere tipografico, se DS_SETFONT è impostato } DLGTEMPLATEEX
| Valore | Significato |
|---|---|
| DS_3DLOOK | Dà la finestra di dialogo carattere grassetto e disegna bordi tridimensionale intorno alle finestre del controllo nella finestra di dialogo. Lo stile DS_3DLOOK è necessaria solo dalle applicazioni basate su Win32 compilate per versioni del sistema precedenti a Windows 95 o Windows NT 4.0. Il sistema si applica automaticamente l'aspetto tridimensionale a finestre di dialogo creati da applicazioni compilate per le versioni correnti del sistema. |
| DS_ABSALIGN | Indica che le coordinate della finestra di dialogo sono coordinate dello schermo. Se questo stile non è specificato, il sistema li considera come coordinate client. |
| DS_CENTER | La finestra di dialogo nell'area di lavoro; cioè, l'area non oscurata dal cassetto. |
| DS_CENTERMOUSE | Centra il cursore del mouse nella finestra di dialogo. |
| DS_CONTEXTHELP | Include un punto interrogativo nella barra del titolo della finestra di dialogo. Quando l'utente sceglie il punto interrogativo, il puntatore cambia a un punto interrogativo con un puntatore. Se poi l'utente fa clic su un controllo nella finestra di dialogo, il controllo riceve un messaggio WM_HELP. Il controllo deve passare il messaggio per la procedura di dialogo, che deve chiamare il funzione WinHelp utilizzando il comando HELP_WM_HELP. L'applicazione di Help Visualizza una finestra popup che in genere contiene la guida per il controllo. Si noti che DS_CONTEXTHELP è solo un segnaposto. Quando viene creata la finestra di dialogo, il sistema controlla per DS_CONTEXTHELP e, se è lì, aggiunge WS_EX_CONTEXTHELP per lo stile esteso della finestra di dialogo. Non è possibile utilizzare lo stile WS_EX_CONTEXTHELP con gli stili WS_MAXIMIZEBOX o WS_MINIMIZEBOX. |
| DS_CONTROL | Viene creata una finestra di dialogo che funziona bene come una finestra figlio di un'altra finestra di dialogo, molto simile a una pagina in una finestra delle proprietà. Questo stile permette all'utente di scheda tra le finestre di controllo di una finestra di dialogo bambino, utilizzare i tasti di scelta rapida e così via. |
| DS_FIXEDSYS | Provoca la finestra di dialogo di utilizzare il SYSTEM_FIXED_FONT anziché il valore predefinito SYSTEM_FONT. SYSTEM_FIXED_FONT è un font monospace compatibile con il tipo di carattere di sistema nelle versioni di Windows precedenti a 3.0. |
| DS_LOCALEDIT | Si applica a solo applicazioni a 16 bit. Questo stile dirige i controlli di modifica nella finestra di dialogo per allocare memoria dal segmento di dati dell'applicazione. In caso contrario, modificare i controlli allocano memoria da un oggetto memoria globale. |
| DS_MODALFRAME | Crea una finestra di dialogo con una cornice di dialogo modale che può essere combinata con una barra del titolo e il menu di sistema specificando gli stili WS_CAPTION e WS_SYSMENU. |
| DS_NOFAILCREATE | Windows 95: Crea la finestra di dialogo anche se si verificano errori — per esempio, se non è possibile creare una finestra figlio o se il sistema non è possibile creare un segmento di dati speciale per un controllo di modifica. |
| DS_NOIDLEMSG | Elimina i messaggi WM_ENTERIDLE che il sistema altrimenti avrebbe inviato al proprietario della finestra di dialogo, mentre è visualizzata la finestra di dialogo. |
| DS_SETFONT | Indica che l'intestazione DLGTEMPLATEEX del template casella di dialogo estesa contiene quattro membri supplementari (pointsize, peso, bItalice tipo di carattere) che descrivono il tipo di carattere da utilizzare per il testo in area client e controlli nella finestra di dialogo. Se possibile, il sistema crea un tipo di carattere specificato in questi membri dei valori. Il sistema passa quindi l'handle del tipo di carattere nella finestra di dialogo e a ogni controllo inviando il messaggio WM_SETFONT. Se questo stile non è specificato, il modello di finestra di dialogo esteso non include i membri pointsize, peso, bItalice tipo di carattere. |
| DS_SETFOREGROUND | Induce il sistema a utilizzare la funzione SetForegroundWindow per portare in primo piano la finestra di dialogo. |
| DS_SYSMODAL | Questo stile è obsoleto ed è incluso per compatibilità con le versioni precedenti di Windows. Se viene specificato questo stile, il sistema crea la finestra di dialogo con lo stile WS_EX_TOPMOST. Non combinare questo stile con lo stile DS_CONTROL. |
È possibile utilizzare un modello di finestra di dialogo esteso invece di un modello di finestra di dialogo standard nelle funzioni CreateDialogIndirectParam e DialogBoxIndirectParam e le macro CreateDialogIndirect e DialogBoxIndirect . Un modello di finestra di dialogo standard utilizza le strutture DLGTEMPLATE e DLGITEMTEMPLATE.
A seguito dell'intestazione DLGTEMPLATEEX in un modello di finestra di dialogo estesa è una o più strutture DLGITEMTEMPLATEEX che descrivono i controlli nella finestra di dialogo. Il membro cDlgItems specifica il numero di strutture DLGITEMTEMPLATEEX nel modello.
Ogni struttura DLGITEMTEMPLATEEX del modello deve essere allineato su un confine DWORD . Se il membro di stile specifica lo stile DS_SETFONT, la prima struttura DLGITEMTEMPLATEEX comincia sul primo limite DWORD dopo la stringa di caratteri . Se DS_SETFONT non viene specificato, la prima struttura inizia sul primo limite DWORD dopo la stringa titolo.
Il menù, windowClass, titoloe matrici di caratteri devono essere allineati secondo limiti a WORD.
Se si specificano stringhe di caratteri nel menu, windowClass, titoloe matrici di carattere , è necessario utilizzare stringhe Unicode. Per creare codice che funziona su Windows e Windows NT, utilizzare la funzione MultiByteToWideChar per generare queste stringhe Unicode.
I membri x, y, cx, cy e specificano i valori in unità di casella di dialogo. È possibile convertire questi valori in unità schermo (pixel) utilizzando la funzione MapDialogRect.
nbsp; Windows &NT: richiede 3,51 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Non supportato.
Panoramica di finestre di dialogo, finestra di dialogo casella strutture, CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, MapDialogRect, MultiByteToWideChar, WM_SETFONT