CreateWindowA-Makro (winuser.h)

Erstellt ein überlappenes, Popup- oder untergeordnetes Fenster. Es gibt die Fensterklasse, den Fenstertitel, die Fensterformatvorlage und (optional) die anfängliche Position und Größe des Fensters an. Die Funktion gibt auch den übergeordneten oder besitzer des Fensters an, falls vorhanden, und das Menü des Fensters.

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

Syntax

void 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 von einem vorherigen Aufruf der Funktion "RegisterClass " oder " RegisterClassEx " erstellt wurde. Das Atom muss im Wort "low-order" von lpClassName sein; Das Wort mit hoher Reihenfolge muss null sein. Wenn lpClassName eine Zeichenfolge ist, gibt es den Fensterklassenamen an. Der Klassenname kann ein beliebiger Name sein, der mit RegisterClass oder RegisterClassEx registriert ist, sofern das Modul, das die Klasse registriert, auch das Modul ist, das das Fenster erstellt. Der Klassenname kann auch eine der vordefinierten Systemklassennamen sein. Eine Liste der Namen der Systemklasse finden Sie im Abschnitt "Hinweise".

[in, optional] lpWindowName

Typ: LPCTSTR

Der Fenstername. Wenn die Fensterformatvorlage eine Titelleiste angibt, wird der Fenstertitel, auf den lpWindowName verweist, in der Titelleiste angezeigt. Wenn Sie CreateWindow verwenden, um Steuerelemente zu erstellen, z. B. Schaltflächen, Kontrollkästchen und statische Steuerelemente, 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 "#num".

[in] dwStyle

Art: DWORD

Die Formatvorlage des fensters, das erstellt wird. Dieser Parameter kann eine Kombination aus den Fensterformatwerten sein, sowie die steuerelementformatvorlagen, die im Abschnitt "Hinweise" angegeben sind.

[in] x

Typ: int

Die anfängliche horizontale Position des Fensters. Bei einem überlappenden oder Popupfenster ist der x-Parameter die erste x-Koordinate der oberen linken Ecke des Fensters in Bildschirmkoordinaten. Für ein untergeordnetes 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 es für ein Popup- oder untergeordnetes Fenster angegeben ist, werden die 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. Für ein untergeordnetes 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. Für ein 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 dem WS_VISIBLE Formatvorlagen-Bitsatz erstellt wird und der x-Parameter auf CW_USEDEFAULT festgelegt ist, bestimmt der y-Parameter , wie das Fenster angezeigt wird. Wenn der Parameter yCW_USEDEFAULT ist, ruft der Fenster-Manager ShowWindow mit dem SW_SHOW Flag nach dem Erstellen des Fensters auf. Wenn der Parameter y ein anderer Wert ist, ruft der Fenster-Manager ShowWindow mit diesem Wert als nCmdShow-Parameter auf.

[in] nWidth

Typ: int

Die Breite in Geräteeinheiten des Fensters. Für überlappende Fenster 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 auf den rechten Rand des Bildschirms, 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 in Geräteeinheiten des Fensters. Für überlappende Fenster 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 zum übergeordneten oder Besitzerfenster des Fensters, das erstellt wird. Um ein untergeordnetes Fenster oder ein eigenes Fenster zu erstellen, geben Sie einen gültigen Fensterhandpunkt an. Dieser Parameter ist optional für Popupfenster.

Geben Sie zum Erstellen eines nur nachrichtengeschützten FenstersHWND_MESSAGE oder einen Handle an ein vorhandenes Nachrichtenfenster an.

[in, optional] hMenu

Typ: HMENU

Ein Handle zu einem Menü oder gibt einen untergeordneten Fensterbezeichner je nach Fensterformat 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 untergeordneten Fensterbezeichner an, ein ganzzahliger Wert, der von einem Dialogfeldsteuerelement verwendet wird, um das übergeordnete Element über Ereignisse zu benachrichtigen. Die Anwendung bestimmt den untergeordneten Fensterbezeichner; Es muss für alle untergeordneten Fenster mit demselben übergeordneten Fenster eindeutig sein.

[in, optional] hInstance

Typ: HINSTANCE

Ein Handle zur 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 den der lParam-Param der WM_CREATE-Nachricht verweist. Diese Nachricht wird durch diese Funktion an das erstellte Fenster gesendet, bevor diese 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 MDI-untergeordnetes Fenster zu erstellen, sollte lpParam auf eine MDICREATESTRUCT-Struktur verweisen. lpParam kann NULL sein, wenn keine zusätzlichen Daten benötigt werden.

Gibt zurück

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. 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-Formatvorlage angegeben ist, sendet CreateWindow das 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 (aber unter allen obersten Fenstern, es sei denn, das erstellte Fenster ist selbst 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 lpClassName-Parameter angegeben werden. Beachten Sie die entsprechenden Steuerelementformatvorlagen, 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 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 dwStyle-Parameter angeben können, finden Sie unter Schaltflächenformatvorlagen.

COMBOBOX Gibt ein Steuerelement aus einem Listenfeld und einem Auswahlfeld wie einem Bearbeitungssteuerelement an. Wenn Sie diese Formatvorlage verwenden, sollte eine Anwendung entweder das Listenfeld jederzeit anzeigen oder ein Dropdownlistenfeld aktivieren. Wenn das Listenfeld sichtbar ist, hebt das Eingeben von Zeichen im Auswahlfeld den ersten Listenfeldeintrag hervor, der den eingegebenen Zeichen entspricht. Umgekehrt zeigt das Auswählen eines Elements im Listenfeld den markierten Text im Auswahlfeld an.

Weitere Informationen finden Sie unter Kombinationsfelden. Eine Tabelle der Kombinationsfeldformatvorlagen, die Sie im dwStyle-Parameter angeben können, finden Sie unter Combo Box Styles.

BEARBEITEN Gibt ein rechteckiges untergeordnetes Fenster an, in das der Benutzer Text aus der Tastatur eingeben kann. Der Benutzer wählt das Steuerelement aus und gibt es den Tastaturfokus, indem er darauf klickt oder durch Drücken der TAB-TASTE auf das Steuerelement wechselt. Der Benutzer kann Text eingeben, wenn das Bearbeitungssteuerelement einen blinkenden Caret anzeigt; Verwenden Sie die Maus, um den Cursor zu verschieben, Zeichen auszuwählen, die ersetzt werden sollen, oder positionieren Sie den Cursor für das 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 Bearbeiten von Steuerelementformatvorlagen.

LISTBOX Gibt eine Liste der Zeichenzeichenfolgen an. Geben Sie dieses Steuerelement an, wenn eine Anwendung eine Liste mit 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 Gibt ein MDI-Clientfenster an. 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, mit dem der Benutzer MDI-untergeordnete Fenster in die Ansicht scrollen kann.

Weitere Informationen finden Sie unter Multiple Document Interface.

Richedit Gibt ein Microsoft Rich Edit 1.0-Steuerelement an. In diesem Fenster kann der Benutzer Text mit Zeichen- und Absatzformatierung anzeigen und bearbeiten und eingebettete Com-Objekte enthalten. Weitere Informationen finden Sie unter Rich Edit Controls.

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

RICHEDIT_CLASS Gibt ein Microsoft Rich Edit 2.0-Steuerelement an. Mit diesen Steuerelementen können Benutzer Text mit Zeichen- und Absatzformatierung anzeigen und bearbeiten und eingebettete COM-Objekte einschließen. Weitere Informationen finden Sie unter Rich Edit Controls.

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

SCROLLBAR Gibt ein Rechteck an, 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 für die Aktualisierung der Position des Bildlauffelds verantwortlich, falls erforderlich. Weitere Informationen finden Sie unter Bildlaufleisten.

Eine Tabelle mit den Formatvorlagen des Bildlaufleistensteuerelements, die Sie im dwStyle-Parameter angeben können, finden Sie unter Bildlaufleisten-Steuerelementformatvorlagen.

STATISCHE Gibt ein einfaches Textfeld, ein Feld oder ein Rechteck an, das zum Beschriften, Feld oder trennen andere Steuerelemente verwendet wird. Statische Steuerelemente übernehmen keine Eingabe und geben keine Ausgabe an. Weitere Informationen finden Sie unter Statische Steuerelemente.

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

 

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 codierungsneutralen Aliase mit Code, der nicht codierungsneutral ist, kann zu Ü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 (enthalten Windows.h)

Weitere Informationen

Informationen zur Benutzeroberfläche für mehrere Dokumente

Allgemeine Steuerelementfensterklassen

Konzept

Createwindowex

DestroyWindow

EnableWindow

Andere Ressourcen

Referenz

Registerclass

RegisterClassEx

Showwindow

WM_COMMAND

WM_CREATE

WM_GETMINMAXINFO

WM_NCCREATE

WM_PAINT

Windows