CreateWindowA-Makro (winuser.h)

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

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

Syntax

HWND CreateWindowA(
  [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: LPCTSTR

Eine null-beendete Zeichenfolge oder ein Klassenatom, das durch einen vorherigen Aufruf der Funktion RegisterClass oder RegisterClassEx erstellt wurde. Das Atom muss sich in der niedrigen Reihenfolge des Worts lpClassName befinden. das wort mit hoher Ordnung muss 0 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 einer der vordefinierten Systemklassennamen sein. Eine Liste der Systemklassennamen finden Sie im Abschnitt Hinweise.

[in, optional] lpWindowName

Typ: LPCTSTR

Der Fenstername. Wenn das Fensterformat eine Titelleiste angibt, wird der Fenstertitel, auf den von lpWindowName verwiesen wird, in der Titelleiste angezeigt. Wenn Sie CreateWindow verwenden, um Steuerelemente wie Schaltflächen, Kontrollkästchen und statische Steuerelemente zu erstellen, verwenden Sie lpWindowName , um den Text des Steuerelements anzugeben. Wenn Sie ein statisches Steuerelement mit der SS_ICON-Format erstellen, verwenden Sie lpWindowName , um den Symbolnamen oder bezeichner anzugeben. Verwenden Sie zum Angeben eines Bezeichners die Syntax "#num".

[in] dwStyle

Art: DWORD

Der Stil des zu erstellenden Fensters. Dieser Parameter kann eine Kombination aus den Fensterformatvorlagenwerten und den im Abschnitt Hinweise angegebenen Steuerelementstilen sein.

[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 linke obere Ecke des Fensters aus und ignoriert den y-Parameter . CW_USEDEFAULT gilt nur für überlappende Fenster; wenn sie für ein Popup- oder untergeordnetes Fenster angegeben wird, werden die Parameter x und y auf 0 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 WS_VISIBLE Formatbitsatz 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 gilt nur für überlappende Fenster; wenn CW_USEDEFAULT für ein Popup- oder untergeordnetes Fenster angegeben wird, werden nWidth und nHeight auf 0 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 Oder 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 Fenster mit nur Nachrichten 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 Fenster 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 Dialogfeldsteuerelement verwendet wird, um das übergeordnete Element über Ereignisse zu benachrichtigen. Die Anwendung bestimmt den Bezeichner des untergeordneten Fensters. Er muss für alle untergeordneten Fenster mit demselben übergeordneten Fenster eindeutig sein.

[in, optional] hInstance

Typ: HINSTANCE

Ein Handle für die 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-Member ) an das Fenster übergeben werden soll, auf den der lParam-Param der WM_CREATE-Nachricht verweist. 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 ist möglicherweise NULL , 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 Nachricht enthält einen Zeiger auf eine CREATESTRUCT-Struktur . Wenn die WS_VISIBLE Stil angegeben ist, sendet CreateWindow dem Fenster alle Nachrichten, die zum Aktivieren und Anzeigen des Fensters erforderlich sind.

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

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 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 es 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 Gibt ein Steuerelement aus einem Listenfeld und einem Auswahlfeld an, das einem Bearbeitungssteuerelement ähnelt. Bei Verwendung dieses Stils sollte eine Anwendung entweder das Listenfeld jederzeit anzeigen oder ein Dropdownlistenfeld aktivieren. Wenn das Listenfeld sichtbar ist, hebt das Eingeben 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 Kombinationsfelde. 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

Anforderung Wert
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