Freigeben über


CreateWindowW-Makro (winuser.h)

Erstellt ein überlappende, Popup- oder untergeordnetes Fenster. Sie gibt die Fensterklasse, den Fenstertitel, die Fensterformatvorlage und (optional) die Anfangsposition und größe des Fensters an. Die Funktion gibt außerdem das übergeordnete Oder den Besitzer des Fensters an, falls vorhanden, und das Menü des Fensters.

Wenn Sie zusätzlich zu den von CreateWindowunterstützten Formatvorlagen erweiterte Fensterformate verwenden möchten, verwenden Sie die CreateWindowEx--Funktion.

Syntax

HWND CreateWindowW(
  [in, optional] LPCWSTR   lpClassName,
  [in, optional] LPCWSTR   lpWindowName,
  [in]           DWORD     dwStyle,
  [in]           int       x,
  [in]           int       y,
  [in]           int       nWidth,
  [in]           int       nHeight,
  [in, optional] HWND      hWndParent,
  [in, optional] HMENU     hMenu,
  [in, optional] HINSTANCE hInstance,
  [in, optional] LPVOID    lpParam
);

Parameter

[in, optional] lpClassName

Typ: LPCWSTR-

Eine null-terminated string or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. Das Atom muss sich im Wort "low-order" von lpClassName; Das Wort "Hochreihenfolge" muss null sein. Wenn lpClassName- eine Zeichenfolge ist, gibt sie den Namen der Fensterklasse an. Der Klassenname kann ein beliebiger Name sein, der bei RegisterClass oder RegisterClassEx-registriert ist, vorausgesetzt, dass das Modul, das die Klasse registriert, auch das Modul ist, das das Fenster erstellt. Der Klassenname kann auch jeder der vordefinierten Systemklassennamen sein. Eine Liste der Systemklassennamen finden Sie im Abschnitt "Hinweise".

[in, optional] lpWindowName

Typ: LPCWSTR-

Der Fenstername. Wenn die Fensterformatvorlage eine Titelleiste angibt, wird der Fenstertitel, auf den lpWindowName verweist, in der Titelleiste angezeigt. Wenn Sie CreateWindow- zum Erstellen von Steuerelementen wie Schaltflächen, Kontrollkästchen und statischen Steuerelementen verwenden, verwenden Sie lpWindowName-, um den Text des Steuerelements anzugeben. Verwenden Sie beim Erstellen eines statischen Steuerelements mit der SS_ICON-Formatvorlage lpWindowName-, um den Symbolnamen oder den Bezeichner anzugeben. Um einen Bezeichner anzugeben, verwenden Sie die Syntax "#Zahl".

[in] dwStyle

Typ: DWORD-

Die Formatvorlage des zu erstellenden Fensters. Dieser Parameter kann eine Kombination aus den Fensterformatwertenund den im Abschnitt "Hinweise" angegebenen Steuerelementformatvorlagen sein.

[in] x

Typ: int

Die anfängliche horizontale Position des Fensters. Bei einem überlappenden oder Popupfenster ist der parameter x die erste X-Koordinate der oberen linken Ecke des Fensters in Bildschirmkoordinaten. Bei einem untergeordneten Fenster ist x die X-Koordinate der oberen linken Ecke des Fensters relativ zur oberen linken Ecke des Clientbereichs des übergeordneten Fensters. Wenn dieser Parameter auf CW_USEDEFAULTfestgelegt ist, wählt das System die Standardposition für die obere linke Ecke des Fensters aus und ignoriert den parameter y. CW_USEDEFAULT gilt nur für überlappende Fenster; Wenn sie für ein Popup- oder untergeordnetes Fenster angegeben ist, werden die parameter x und y parameter auf Null festgelegt.

[in] y

Typ: int

Die anfängliche vertikale Position des Fensters. Bei einem überlappenden oder Popupfenster ist der y Parameter die anfängliche y-Koordinate der oberen linken Ecke des Fensters in Bildschirmkoordinaten. Bei einem untergeordneten Fenster ist y die anfängliche y-Koordinate der oberen linken Ecke des untergeordneten Fensters relativ zur oberen linken Ecke des Clientbereichs des übergeordneten Fensters. Bei einem Listenfeld ist y die anfängliche y-Koordinate der oberen linken Ecke des Clientbereichs des Listenfelds relativ zur oberen linken Ecke des Clientbereichs des übergeordneten Fensters.

Wenn ein überlappende Fenster mit dem Bitsatz WS_VISIBLE Formatvorlage erstellt wird und der parameter x auf CW_USEDEFAULTfestgelegt ist, bestimmt der y Parameter, wie das Fenster angezeigt wird. Wenn der y-Parameter CW_USEDEFAULTist, ruft der Fenster-Manager ShowWindow mit dem SW_SHOW Flag auf, nachdem das Fenster erstellt wurde. Wenn der y Parameter ein anderer Wert ist, ruft der Fenster-Manager ShowWindow mit diesem Wert als nCmdShow Parameter auf.

[in] nWidth

Typ: int

Die Breite des Fensters in Geräteeinheiten. Bei überlappenden Fenstern ist nWidth- entweder die Breite des Fensters, in Bildschirmkoordinaten oder CW_USEDEFAULT. Wenn nWidth-CW_USEDEFAULTist, wählt das System eine Standardbreite und -höhe für das Fenster aus; Die Standardbreite erstreckt sich von der ersten X-Koordinate bis zum rechten Rand des Bildschirms, und die Standardhöhe erstreckt sich von der anfänglichen y-Koordinate bis zum oberen Rand des Symbolbereichs. CW_USEDEFAULT gilt nur für überlappende Fenster; wenn CW_USEDEFAULT für ein Popup- oder untergeordnetes Fenster angegeben ist, werden nWidth- und nHeight- auf Null festgelegt.

[in] nHeight

Typ: int

Die Höhe des Fensters in Geräteeinheiten. Bei überlappenden Fenstern ist nHeight- die Höhe des Fensters in Bildschirmkoordinaten. Wenn nWidth- auf CW_USEDEFAULTfestgelegt ist, ignoriert das System nHeight-.

[in, optional] hWndParent

Typ: HWND-

Ein Handle für das übergeordnete Fenster oder das Besitzerfenster des zu erstellenden Fensters. Um ein untergeordnetes Fenster oder ein eigenes Fenster zu erstellen, geben Sie einen gültigen Fensterziehpunkt an. Dieser Parameter ist optional für Popupfenster.

Um ein nur-Nachrichtenfensterzu erstellen, geben Sie HWND_MESSAGE oder ein Handle für ein vorhandenes Nur-Nachrichten-Fenster an.

[in, optional] hMenu

Typ: HMENU

Ein Handle zu einem Menü oder gibt je nach Fensterformat einen Bezeichner für untergeordnete Fenster an. Bei einem überlappenden oder Popupfenster identifiziert hMenu das Menü, das mit dem Fenster verwendet werden soll; es kann NULL- sein, wenn das Klassenmenü verwendet werden soll. Für ein untergeordnetes Fenster gibt hMenu den Bezeichner des untergeordneten Fensters an, einen ganzzahligen Wert, der von einem Dialogfeld-Steuerelement verwendet wird, um das übergeordnete Element über Ereignisse zu benachrichtigen. Die Anwendung bestimmt den Bezeichner des untergeordneten Fensters; Es muss für alle untergeordneten Fenster mit demselben übergeordneten Fenster eindeutig sein.

[in, optional] hInstance

Typ: HINSTANCE-

Ein Handle für die Instanz des Moduls, das dem Fenster zugeordnet werden soll.

[in, optional] lpParam

Typ: LPVOID-

Ein Zeiger auf einen Wert, der über die CREATESTRUCT Struktur (lpCreateParams Member) an das Fenster übergeben werden soll, auf das durch den lParam Param der WM_CREATE Nachricht verwiesen wird. Diese Nachricht wird vor dem Zurückgeben an das erstellte Fenster von dieser Funktion gesendet.

Wenn eine Anwendung CreateWindow aufruft, um ein MDI-Clientfenster zu erstellen, sollte lpParam- auf eine CLIENTCREATESTRUCT Struktur verweisen. Wenn ein MDI-Clientfenster CreateWindow- aufruft, um ein untergeordnetes MDI-Fenster zu erstellen, sollte lpParam- auf eine MDICREATESTRUCT- Struktur verweisen. lpParam- kann NULL- sein, wenn keine zusätzlichen Daten erforderlich sind.

Rückgabewert

Typ: HWND-

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle für das neue Fenster.

Wenn die Funktion fehlschlägt, ist der Rückgabewert NULL-. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Vor dem Zurückgeben sendet CreateWindow eine WM_CREATE Nachricht an die Fensterprozedur. Bei überlappenden Fenstern, Popupfenstern und untergeordneten Fenstern sendet CreateWindowWM_CREATE, WM_GETMINMAXINFOund WM_NCCREATE Nachrichten an das Fenster. Der lParam--Parameter der WM_CREATE Nachricht enthält einen Zeiger auf eine CREATESTRUCT- Struktur. Wenn die WS_VISIBLE Formatvorlage angegeben ist, sendet CreateWindow das Fenster alle zum Aktivieren und Anzeigen des Fensters erforderlichen Nachrichten.

Wenn das erstellte Fenster ein untergeordnetes Fenster ist, befindet sich die Standardposition unten in der Z-Reihenfolge. Wenn das erstellte Fenster ein Fenster der obersten Ebene ist, befindet sich die Standardposition oben in der Z-Reihenfolge (aber unter allen obersten Fenstern, es sei denn, das erstellte Fenster befindet sich ganz oben).

Informationen zum Steuern, ob die Taskleiste eine Schaltfläche für das erstellte Fenster anzeigt, finden Sie unter Verwalten von Taskleistenschaltflächen.

Informationen zum Entfernen eines Fensters finden Sie in der funktion DestroyWindow.

Die folgenden vordefinierten Systemklassen können im parameter lpClassName angegeben werden. Beachten Sie die entsprechenden Steuerelementstile, die Sie im dwStyle Parameter verwenden können.

Systemklasse Bedeutung
BUTTON- Legt ein kleines rechteckiges untergeordnetes Fenster fest, das eine Schaltfläche darstellt, auf die der Benutzer klicken kann, um es zu aktivieren oder zu deaktivieren. Schaltflächensteuerelemente können allein oder in Gruppen verwendet werden, und sie können entweder ohne Text beschriftet oder angezeigt werden. Schaltflächensteuerelemente ändern in der Regel die Darstellung, wenn der Benutzer darauf klickt. Weitere Informationen finden Sie unter Schaltflächen

Eine Tabelle der Schaltflächenformatvorlagen, die Sie im parameter dwStyle angeben können, finden Sie unter Button Styles.

COMBOBOX- Legt ein Steuerelement fest, das aus einem Listenfeld und einem Auswahlfeld besteht, das einem Bearbeitungssteuerelement ähnelt. Wenn Sie diese Formatvorlage verwenden, sollte eine Anwendung das Listenfeld jederzeit anzeigen oder ein Dropdown-Listenfeld aktivieren. Wenn das Listenfeld sichtbar ist, werden durch Eingeben von Zeichen in das Auswahlfeld der erste Listenfeldeintrag hervorgehoben, der den eingegebenen Zeichen entspricht. Umgekehrt wird beim Auswählen eines Elements im Listenfeld der markierte Text im Auswahlfeld angezeigt.

Weitere Informationen finden Sie unter Kombinationsfelder. Eine Tabelle der Kombinationsfeldarten, die Sie im dwStyle--Parameter angeben können, finden Sie unter Kombinationsfeldarten.

EDIT Legt ein rechteckiges untergeordnetes Fenster fest, in das der Benutzer Text über die Tastatur eingeben kann. Der Benutzer wählt das Steuerelement aus und gibt dem Steuerelement den Tastaturfokus, indem er darauf klickt oder durch Drücken der TAB-TASTE zu dem Steuerelement wechselt. Der Benutzer kann Text eingeben, wenn das Bearbeitungssteuerelement eine blinkende Caret anzeigt. Verwenden Sie die Maus, um den Cursor zu verschieben, zeichen auszuwählen, die ersetzt werden sollen, oder positionieren Sie den Cursor zum Einfügen von Zeichen. oder verwenden Sie die RÜCKTASTE, um Zeichen zu löschen. Weitere Informationen finden Sie unter Bearbeiten von Steuerelementen.

Eine Tabelle der Bearbeitungssteuerelementformatvorlagen, die Sie im dwStyle--Parameter angeben können, finden Sie unter Edit Control Styles.

LISTBOX- Legt eine Liste von Zeichenfolgen fest. Geben Sie dieses Steuerelement an, wenn eine Anwendung eine Liste von Namen, z. B. Dateinamen, angeben muss, aus denen der Benutzer auswählen kann. Der Benutzer kann eine Zeichenfolge auswählen, indem er darauf klickt. Eine ausgewählte Zeichenfolge ist hervorgehoben, und eine Benachrichtigung wird an das übergeordnete Fenster übergeben. Weitere Informationen finden Sie unter Listenfelder.

Eine Tabelle der Listenfeldformatvorlagen, die Sie im dwStyle--Parameter angeben können, finden Sie unter Listenfeldformatvorlagen.

MDICLIENT- Legt ein MDI-Clientfenster fest. Dieses Fenster empfängt Nachrichten, die die untergeordneten Fenster der MDI-Anwendung steuern. Die empfohlenen Formatvorlagenbits sind WS_CLIPCHILDREN und WS_CHILD. Geben Sie die formatvorlagen WS_HSCROLL und WS_VSCROLL an, um ein MDI-Clientfenster zu erstellen, das dem Benutzer das Scrollen untergeordneter MDI-Fenster in die Ansicht ermöglicht.

Weitere Informationen finden Sie unter Multiple Document Interface.

RichEdit- Legt ein Microsoft Rich Edit 1.0-Steuerelement fest. In diesem Fenster kann der Benutzer Text mit Zeichen- und Absatzformatierungen anzeigen und bearbeiten und eingebettete COM-Objekte (Component Object Model) enthalten. Weitere Informationen finden Sie unter Rich Edit Controls.

Eine Tabelle der Rich-Edit-Steuerelementstile, die Sie im dwStyle--Parameter angeben können, finden Sie unter Rich Edit Control Styles.

RICHEDIT_CLASS Legt ein Microsoft Rich Edit 2.0-Steuerelement fest. Mit diesen Steuerelementen können Benutzer Text mit Zeichen- und Absatzformatierungen anzeigen und bearbeiten und eingebettete COM-Objekte enthalten. Weitere Informationen finden Sie unter Rich Edit Controls.

Eine Tabelle der Rich-Edit-Steuerelementstile, die Sie im dwStyle--Parameter angeben können, finden Sie unter Rich Edit Control Styles.

SCROLLBAR- Legt ein Rechteck fest, das ein Bildlauffeld enthält und Richtungspfeile an beiden Enden aufweist. Die Bildlaufleiste sendet eine Benachrichtigung an das übergeordnete Fenster, wenn der Benutzer auf das Steuerelement klickt. Das übergeordnete Fenster ist bei Bedarf für die Aktualisierung der Position des Bildlauffelds verantwortlich. Weitere Informationen finden Sie unter Bildlaufleisten.

Eine Tabelle der Bildlaufleisten-Steuerelementarten, die Sie im parameter dwStyle angeben können, finden Sie unter Bildlaufleisten-Steuerelementarten.

STATIC- Legt ein einfaches Textfeld, ein Feld oder ein Rechteck fest, das zum Bezeichnen, Feld oder Trennen anderer Steuerelemente verwendet wird. Statische Steuerelemente nehmen keine Eingabe und geben keine Ausgabe an. Weitere Informationen finden Sie unter statische Steuerelemente.

Eine Tabelle der statischen Steuerelementformatvorlagen, die Sie im dwStyle--Parameter angeben können, finden Sie unter Statische Steuerelementarten.

 

CreateWindow wird als Aufruf der CreateWindowEx--Funktion implementiert, wie unten dargestellt.

#define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)

#define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)

#ifdef UNICODE
#define CreateWindow  CreateWindowW
#else
#define CreateWindow  CreateWindowA
#endif

Beispiele

Ein Beispiel finden Sie unter Verwenden von Fensterklassen.

Anmerkung

Der winuser.h-Header definiert CreateWindow 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)

Siehe auch

Über die für mehrere Dokumente

allgemeine Steuerelementfensterklassen

Konzeptionelle

CreateWindowEx-

DestroyWindow

EnableWindow-

andere Ressourcen

Referenz-

RegisterClass

RegisterClassEx-

ShowWindow-

WM_COMMAND

WM_CREATE

WM_GETMINMAXINFO

WM_NCCREATE

WM_PAINT

Windows