Freigeben über


CreateDialogIndirectA-Makro (winuser.h)

Erstellt ein Dialogfeld ohne Modus aus einer Dialogfeldvorlage im Arbeitsspeicher. Das CreateDialogIndirect Makro verwendet die CreateDialogIndirectParam--Funktion.

Syntax

void CreateDialogIndirectA(
  [in, optional] hInstance,
  [in]           lpTemplate,
  [in, optional] hWndParent,
  [in, optional] lpDialogFunc
);

Parameter

[in, optional] hInstance

Typ: HINSTANCE-

Ein Handle für das Modul, das das Dialogfeld erstellt.

[in] lpTemplate

Typ: LPCDLGTEMPLATE-

Eine Vorlage, die CreateDialogIndirect zum Erstellen des Dialogfelds verwendet. Eine Dialogfeldvorlage besteht aus einer Kopfzeile, die das Dialogfeld beschreibt, gefolgt von einem oder mehreren zusätzlichen Datenblöcken, die die einzelnen Steuerelemente im Dialogfeld beschreiben. Die Vorlage kann entweder das Standardformat oder das erweiterte Format verwenden.

In einer Standardvorlage ist die Kopfzeile eine DLGTEMPLATE- Struktur gefolgt von zusätzlichen Arrays mit variabler Länge. Die Daten für jedes Steuerelement bestehen aus einer DLGITEMTEMPLATE Struktur gefolgt von zusätzlichen Arrays mit variabler Länge.

In einer erweiterten Dialogfeldvorlage verwendet die Kopfzeile das DLGTEMPLATEEX Format, und die Steuerelementdefinitionen verwenden das DLGITEMTEMPLATEEX Format.

Nachdem CreateDialogIndirect zurückgegeben wurde, können Sie die Vorlage freigeben, die nur zum Starten des Dialogfelds verwendet wird.

[in, optional] hWndParent

Typ: HWND-

Ein Handle für das Fenster, das das Dialogfeld besitzt.

[in, optional] lpDialogFunc

Typ: DLGPROC-

Ein Zeiger auf die Dialogfeldprozedur. Weitere Informationen zur Dialogfeldprozedur finden Sie unter DialogProc-.

Rückgabewert

Nichts

Bemerkungen

Das CreateDialogIndirect Makro verwendet die CreateWindowEx--Funktion, um das Dialogfeld zu erstellen. CreateDialogIndirect sendet dann eine WM_INITDIALOG Nachricht an die Dialogfeldprozedur. Wenn die Vorlage die formatvorlage DS_SETFONT oder DS_SHELLFONT angibt, sendet die Funktion auch eine WM_SETFONT Nachricht an die Dialogfeldprozedur. Die Funktion zeigt das Dialogfeld an, wenn die Vorlage die WS_VISIBLE Formatvorlage angibt. Schließlich gibt CreateDialogIndirect das Fensterhandle an das Dialogfeld zurück.

Nachdem CreateDialogIndirect zurückgegeben wurde, können Sie die ShowWindow--Funktion verwenden, um das Dialogfeld anzuzeigen (sofern es noch nicht sichtbar ist). Um das Dialogfeld zu zerstören, verwenden Sie die DestroyWindow--Funktion. Um die Tastaturnavigation und andere Dialogfeldfunktionen zu unterstützen, muss die Meldungsschleife für das Dialogfeld die IsDialogMessage--Funktion aufrufen.

In einer Standarddialogfeldvorlage müssen die DLGTEMPLATE- Struktur und jede der DLGITEMTEMPLATE- Strukturen an DWORD- Grenzen ausgerichtet werden. Das Erstellungsdatenarray, das auf eine DLGITEMTEMPLATE- Struktur folgt, muss auch an einer DWORD- Grenze ausgerichtet werden. Alle anderen Arrays mit variabler Länge in der Vorlage müssen an WORD- Grenzen ausgerichtet werden.

In einer erweiterten Dialogfeldvorlage müssen die DLGTEMPLATEEX Kopfzeile und jeder der DLGITEMTEMPLATEEX--Steuerelementdefinitionen an DWORD- Grenzen ausgerichtet werden. Wenn vorhanden, muss das Erstellungsdatenarray, das auf eine DLGITEMTEMPLATEEX- Struktur folgt, auch an einer DWORD- Grenze ausgerichtet werden. Alle anderen Arrays mit variabler Länge in der Vorlage müssen an WORD- Grenzen ausgerichtet werden.

Alle Zeichenzeichenfolgen in der Dialogfeldvorlage, z. B. Titel für das Dialogfeld und Schaltflächen, müssen Unicode-Zeichenfolgen sein. Verwenden Sie die MultiByteToWideChar--Funktion, um Unicode-Zeichenfolgen aus ANSI-Zeichenfolgen zu generieren.

Anmerkung

Der winuser.h-Header definiert CreateDialogIndirect als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winuser.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll

Siehe auch

Konzeptionelle

CreateDialog-

CreateDialogIndirectParam-

CreateDialogParam-

CreateWindowEx-

DLGITEMTEMPLATE-

DLGITEMTEMPLATEEX

DLGTEMPLATE-

DLGTEMPLATEEX-

DestroyWindow

Dialogfelder

DialogProc-

IsDialogMessage-

MultiByteToWideChar-

andere Ressourcen

Referenz-

ShowWindow-

WM_INITDIALOG

WM_SETFONT