Macro CreateDialogIndirectA (winuser.h)
Crea una finestra di dialogo senza modalità da un modello di finestra di dialogo in memoria. La macro CreateDialogIndirect usa la funzione CreateDialogIndirectParam.
Sintassi
void CreateDialogIndirectA(
[in, optional] hInstance,
[in] lpTemplate,
[in, optional] hWndParent,
[in, optional] lpDialogFunc
);
Parametri
[in, optional] hInstance
Tipo: HINSTANCE
Handle per il modulo che crea la finestra di dialogo.
[in] lpTemplate
Tipo: LPCDLGTEMPLATE
Modello usato da CreateDialogIndirect per creare la finestra di dialogo. Un modello di finestra di dialogo è costituito da un'intestazione che descrive la finestra di dialogo, seguita da uno o più blocchi aggiuntivi di dati che descrivono ognuno dei controlli nella finestra di dialogo. Il modello può usare il formato standard o il formato esteso.
In un modello standard, l'intestazione è una struttura DLGTEMPLATE seguita da matrici di lunghezza variabile aggiuntive. I dati per ogni controllo sono costituiti da una struttura DLGITEMTEMPLATE seguita da matrici di lunghezza variabile aggiuntive.
In un modello di finestra di dialogo estesa, l'intestazione usa il formato DLGTEMPLATEEX e le definizioni di controllo usano il formato DLGITEMTEMPLATEEX .
Dopo aver restituito CreateDialogIndirect , è possibile liberare il modello, usato solo per iniziare la finestra di dialogo.
[in, optional] hWndParent
Tipo: HWND
Handle nella finestra che possiede la finestra di dialogo.
[in, optional] lpDialogFunc
Tipo: DLGPROC
Puntatore alla procedura della finestra di dialogo. Per altre informazioni sulla procedura della finestra di dialogo, vedere DialogProc.
Valore restituito
nessuno
Osservazioni
La macro CreateDialogIndirect usa la funzione CreateWindowEx per creare la finestra di dialogo. CreateDialogIndirect invia quindi un messaggio WM_INITDIALOG alla procedura della finestra di dialogo. Se il modello specifica lo stile DS_SETFONT o DS_SHELLFONT , la funzione invia anche un messaggio WM_SETFONT alla procedura della finestra di dialogo. La funzione visualizza la finestra di dialogo se il modello specifica lo stile WS_VISIBLE. Infine, CreateDialogIndirect restituisce l'handle della finestra nella finestra di dialogo.
Dopo aver restituito CreateDialogIndirect , è possibile usare la funzione ShowWindow per visualizzare la finestra di dialogo ( se non è già visibile). Per eliminare la finestra di dialogo, usare la funzione DestroyWindow . Per supportare lo spostamento da tastiera e altre funzionalità della finestra di dialogo, il ciclo di messaggi per la finestra di dialogo deve chiamare la funzione IsDialogMessage .
In un modello di finestra di dialogo standard, la struttura DLGTEMPLATE e ognuna delle strutture DLGITEMTEMPLATE deve essere allineata ai limiti DWORD. La matrice di dati di creazione che segue una struttura DLGITEMTEMPLATE deve essere allineata anche su un limite DWORD . Tutte le altre matrici a lunghezza variabile nel modello devono essere allineate ai limiti di WORD .
In un modello di finestra di dialogo esteso, l'intestazione DLGTEMPLATEEX e ognuna delle definizioni di controllo DLGITEMTEMPLATEEX deve essere allineata ai limiti DWORD . La matrice di dati di creazione, se presente, che segue una struttura DLGITEMTEMPLATEEX deve essere allineata anche su un limite DWORD . Tutte le altre matrici a lunghezza variabile nel modello devono essere allineate ai limiti di WORD .
Tutte le stringhe di caratteri nel modello della finestra di dialogo, ad esempio i titoli per la finestra di dialogo e i pulsanti, devono essere stringhe Unicode. Usare la funzione MultiByteToWideChar per generare stringhe Unicode da stringhe ANSI.
Nota
L'intestazione winuser.h definisce CreateDialogIndirect come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Vedi anche
Informazioni concettuali
Altre risorse
Riferimento