CreateWindowW-Makro (winuser.h)

Erstellt ein überlappende, popupfähiges oder untergeordnetes Fenster. Es gibt die Fensterklasse, den Fenstertitel, das Fensterformat und (optional) die Anfangsposition und Größe des Fensters an. Die Funktion gibt auch das übergeordnete Element oder den Besitzer des Fensters (sofern vorhanden) und das Menü des Fensters an.

Um erweiterte Fensterstile zusätzlich zu den von CreateWindow unterstützten Formatvorlagen zu verwenden, verwenden Sie die CreateWindowEx-Funktion .

Syntax

HWND CreateWindowW(
  [in, optional]  lpClassName,
  [in, optional]  lpWindowName,
  [in]            dwStyle,
  [in]            x,
  [in]            y,
  [in]            nWidth,
  [in]            nHeight,
  [in, optional]  hWndParent,
  [in, optional]  hMenu,
  [in, optional]  hInstance,
  [in, optional]  lpParam
);

Parameter

[in, optional] lpClassName

Typ: LPCWSTR

Eine null-endende Zeichenfolge oder ein Klassenatom, das durch einen vorherigen Aufruf der RegisterClass - oder RegisterClassEx-Funktion erstellt wurde. Das Atom muss sich in der niedrigen Reihenfolge des Worts lpClassName befinden. Das Wort mit hoher Ordnung muss 0 (null) sein. Wenn lpClassName eine Zeichenfolge ist, wird der Name der Fensterklasse angegeben. Der Klassenname kann ein beliebiger Name sein, der bei RegisterClass oder RegisterClassEx registriert ist, vorausgesetzt, das Modul, das die Klasse registriert, ist auch das Modul, 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 das Fensterformat 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. Wenn Sie ein statisches Steuerelement mit dem SS_ICON-Stil erstellen, verwenden Sie lpWindowName , um den Symbolnamen oder bezeichner anzugeben. Verwenden Sie die Syntax "#zahl", um einen Bezeichner anzugeben.

[in] dwStyle

Art: DWORD

Der Stil des Fensters, das erstellt wird. Bei diesem Parameter kann es sich um eine Kombination der Fensterstilwerte sowie der im Abschnitt Hinweise angegebenen Steuerelementstile handeln.

[in] x

Typ: int

Die anfängliche horizontale Position des Fensters. Bei einem überlappenden Oder Popupfenster ist der x-Parameter die anfängliche 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_USEDEFAULT festgelegt ist, wählt das System die Standardposition für die obere linke Ecke des Fensters aus und ignoriert den y-Parameter . CW_USEDEFAULT ist nur für überlappende Fenster gültig; Wenn er für ein Popup- oder untergeordnetes Fenster angegeben ist, werden die Parameter x und y auf 0 (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 überlappenes Fenster mit festgelegtem bit WS_VISIBLE Stil erstellt wird und der x-Parameter auf CW_USEDEFAULT festgelegt ist, bestimmt der y-Parameter , wie das Fenster angezeigt wird. Wenn der y-ParameterCW_USEDEFAULT ist, ruft der Fenster-Manager ShowWindow mit dem flag SW_SHOW 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 nWidthCW_USEDEFAULT ist, wählt das System eine Standardbreite und -höhe für das Fenster aus. Die Standardbreite erstreckt sich von der anfänglichen x-Koordinate bis zum rechten Bildschirmrand, und die Standardhöhe erstreckt sich von der anfänglichen y-Koordinate bis zum oberen Rand des Symbolbereichs. CW_USEDEFAULT ist nur für überlappende Fenster gültig; 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_USEDEFAULT festgelegt 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 ein gültiges Fensterhandle an. Dieser Parameter ist für Popupfenster optional.

Um ein Fenster mit nur Nachrichten zu erstellen, geben Sie HWND_MESSAGE oder ein Handle für ein vorhandenes Nachrichtenfenster an.

[in, optional] hMenu

Typ: HMENU

Ein Handle für ein Menü oder gibt je nach Fensterstil 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 für untergeordnete Fenster 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. Sie muss für alle untergeordneten Fenster mit demselben übergeordneten Fenster eindeutig sein.

[in, optional] hInstance

Typ: HINSTANCE

Ein Handle zum instance des Moduls, das dem Fenster zugeordnet werden soll.

[in, optional] lpParam

Typ: LPVOID

Ein Zeiger auf einen Wert, der über die CREATESTRUCT-Struktur (lpCreateParams-Element ) an das Fenster übergeben werden soll, auf die der lParam-Param der WM_CREATE Meldung zeigt. Diese Nachricht wird von dieser Funktion an das erstellte Fenster gesendet, bevor sie zurückgegeben wird.

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.

Gibt zurück

Typ: HWND

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

Wenn bei der Funktion ein Fehler auftritt, ist der Rückgabewert NULL. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Rückgabewert

Keine

Bemerkungen

Vor der Rückgabe sendet CreateWindow eine WM_CREATE Nachricht an die Fensterprozedur. Für überlappende, Popup- und untergeordnete Fenster sendet CreateWindowWM_CREATE-, WM_GETMINMAXINFO- und WM_NCCREATE-Nachrichten an das Fenster. Der lParam-Parameter der WM_CREATE Meldung enthält einen Zeiger auf eine CREATESTRUCT-Struktur . Wenn die WS_VISIBLE Stil angegeben ist, sendet CreateWindow dem Fenster alle Meldungen, die zum Aktivieren und Anzeigen des Fensters erforderlich sind.

Wenn das erstellte Fenster ein untergeordnetes Fenster ist, befindet sich seine Standardposition am unteren Rand der Z-Reihenfolge. Wenn das erstellte Fenster ein Fenster auf oberster Ebene ist, befindet sich seine Standardposition oben in der Z-Reihenfolge (jedoch unter allen obersten Fenstern, es sei denn, das erstellte Fenster befindet sich selbst am obersten Rand).

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 unter der DestroyWindow-Funktion .

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

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

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

COMBOBOX Legt ein Steuerelement fest, das aus einem Listenfeld und einem Auswahlfeld besteht, das einem Bearbeitungssteuerelement ähnelt. Bei Verwendung dieses Stils sollte eine Anwendung entweder das Listenfeld jederzeit anzeigen oder ein Dropdown-Listenfeld aktivieren. Wenn das Listenfeld sichtbar ist, hebt die Eingabe von Zeichen in das Auswahlfeld den ersten Listenfeldeintrag hervor, der den eingegebenen Zeichen entspricht. Umgekehrt wird beim Auswählen eines Elements im Listenfeld der ausgewählte Text im Auswahlfeld angezeigt.

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

BEARBEITEN Gibt ein rechteckiges untergeordnetes Fenster an, in das der Benutzer Text von der 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 diesem Steuerelement wechselt. Der Benutzer kann Text eingeben, wenn das Bearbeitungssteuerelement ein blinkendes Caret anzeigt. Verwenden Sie die Maus, um den Cursor zu bewegen, zu ersetzende Zeichen auszuwählen oder den Cursor zum Einfügen von Zeichen zu positionieren. oder verwenden Sie die BACKSPACE-Taste, um Zeichen zu löschen. Weitere Informationen finden Sie unter Bearbeiten von Steuerelementen.

Eine Tabelle der Steuerelementstile bearbeiten, die Sie im dwStyle-Parameter angeben können, finden Sie unter Bearbeiten von Steuerelementstilen.

LISTBOX Gibt eine Liste von Zeichenfolgen an. Geben Sie dieses Steuerelement immer dann an, wenn eine Anwendung eine Liste von Namen aufweisen muss, z. B. Dateinamen, 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 Benachrichtigungsmeldung wird an das übergeordnete Fenster übergeben. Weitere Informationen finden Sie unter Listenfelder.

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

MDICLIENT Gibt ein MDI-Clientfenster an. Dieses Fenster empfängt Meldungen, die die untergeordneten Fenster der MDI-Anwendung steuern. Die empfohlenen Formatbits sind WS_CLIPCHILDREN und WS_CHILD. Geben Sie die stile WS_HSCROLL und WS_VSCROLL an, um ein MDI-Clientfenster zu erstellen, in dem der Benutzer untergeordnete MDI-Fenster in die Ansicht scrollen kann.

Weitere Informationen finden Sie unter Schnittstelle mit mehreren Dokumenten.

RichEdit Gibt ein Microsoft Rich Edit 1.0-Steuerelement an. In diesem Fenster können Benutzer Text mit Zeichen- und Absatzformaten anzeigen und bearbeiten und eingebettete COM-Objekte (Component Object Model) enthalten. Weitere Informationen finden Sie unter Rich-Edit-Steuerelemente.

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 Absatzformatieren anzeigen und bearbeiten und eingebettete COM-Objekte enthalten. Weitere Informationen finden Sie unter Rich-Edit-Steuerelemente.

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

SCROLLBAR Gibt ein Rechteck an, das ein Scrollfeld enthält und an beiden Enden Richtungspfeile aufweist. Die Bildlaufleiste sendet eine Benachrichtigung an das übergeordnete Fenster, wenn der Benutzer auf das Steuerelement klickt. Das übergeordnete Fenster ist für die Aktualisierung der Position des Bildlauffelds zuständig, falls erforderlich. Weitere Informationen finden Sie unter Bildlaufleisten.

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

STATISCHE Gibt ein einfaches Textfeld, Feld oder Rechteck an, das zum Beschriften, Kontrollkästchen oder Trennen anderer Steuerelemente verwendet wird. Statische Steuerelemente nehmen keine Eingaben und bieten keine Ausgabe. Weitere Informationen finden Sie unter Statische Steuerelemente.

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

 

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

#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.

Hinweis

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)

Weitere Informationen

Informationen zur Schnittstelle mit mehreren Dokumenten

Allgemeine Steuerelementfensterklassen

Konzept

Createwindowex

DestroyWindow

EnableWindow

Andere Ressourcen

Referenz

Registerclass

RegisterClassEx

Showwindow

WM_COMMAND

WM_CREATE

WM_GETMINMAXINFO

WM_NCCREATE

WM_PAINT

Windows