Funzione CreateDialogIndirectParamA (winuser.h)
Crea una finestra di dialogo senza modalità da un modello di finestra di dialogo in memoria. Prima di visualizzare la finestra di dialogo, la funzione passa un valore definito dall'applicazione alla procedura della finestra di dialogo come parametro lParam del messaggio di WM_INITDIALOG . Un'applicazione può usare questo valore per inizializzare i controlli della finestra di dialogo.
Sintassi
HWND CreateDialogIndirectParamA(
[in, optional] HINSTANCE hInstance,
[in] LPCDLGTEMPLATEA lpTemplate,
[in, optional] HWND hWndParent,
[in, optional] DLGPROC lpDialogFunc,
[in] LPARAM dwInitParam
);
Parametri
[in, optional] hInstance
Tipo: HINSTANCE
Handle per il modulo che contiene il modello della finestra di dialogo. Se questo parametro è NULL, viene usato il file eseguibile corrente.
[in] lpTemplate
Tipo: LPCDLGTEMPLATE
Il modello CreateDialogIndirectParam usa 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 CreateDialogIndirectParam , è 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.
[in] dwInitParam
Tipo: LPARAM
Valore da passare alla finestra di dialogo nel parametro lParam del messaggio di WM_INITDIALOG .
Valore restituito
Tipo: HWND
Se la funzione ha esito positivo, il valore restituito è l'handle della finestra nella finestra di dialogo.
Se la funzione ha esito negativo, il valore restituito è NULL. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
La funzione CreateDialogIndirectParam usa la funzione CreateWindowEx per creare la finestra di dialogo. CreateDialogIndirectParam 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, CreateDialogIndirectParam restituisce l'handle della finestra nella finestra di dialogo.
Dopo aver restituito CreateDialogIndirectParam , è 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.
Nota
L'intestazione winuser.h definisce CreateDialogIndirectParam 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
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 |
Set di API | ext-ms-win-ntuser-dialogbox-l1-1-0 (introdotto in Windows 8) |
Vedi anche
Informazioni concettuali
Altre risorse
Riferimento