Macro CreateWindowA (winuser.h)

Crea una finestra sovrapposta, popup o figlio. Specifica la classe di finestra, il titolo della finestra, lo stile della finestra e (facoltativamente) la posizione iniziale e le dimensioni della finestra. La funzione specifica anche il padre o il proprietario della finestra, se presente e il menu della finestra.

Per usare gli stili di finestra estesi oltre agli stili supportati da CreateWindow, usare la funzione CreateWindowEx .

Sintassi

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
);

Parametri

[in, optional] lpClassName

Tipo: LPCTSTR

Stringa con terminazione null o atom di classe creata da una chiamata precedente alla funzione RegisterClass oRegisterClassEx . L'atomo deve essere nella parola a basso ordine di lpClassName; la parola di ordine elevato deve essere zero. Se lpClassName è una stringa, specifica il nome della classe di finestra. Il nome della classe può essere qualsiasi nome registrato con RegisterClass o RegisterClassEx, purché il modulo che registra la classe sia anche il modulo che crea la finestra. Il nome della classe può anche essere uno dei nomi predefiniti della classe di sistema. Per un elenco dei nomi delle classi di sistema, vedere la sezione Osservazioni.

[in, optional] lpWindowName

Tipo: LPCTSTR

Nome della finestra. Se lo stile della finestra specifica una barra del titolo, il titolo della finestra a cui punta lpWindowName viene visualizzato nella barra del titolo. Quando si usa CreateWindow per creare controlli, ad esempio pulsanti, caselle di controllo e controlli statici, usare lpWindowName per specificare il testo del controllo. Quando si crea un controllo statico con lo stile SS_ICON , usare lpWindowName per specificare il nome o l'identificatore dell'icona. Per specificare un identificatore, usare la sintassi "#num".

[in] dwStyle

Tipo: DWORD

Stile della finestra creata. Questo parametro può essere una combinazione dei valori dello stile della finestra, oltre agli stili di controllo indicati nella sezione Osservazioni.

[in] x

Tipo: int

Posizione orizzontale iniziale della finestra. Per una finestra sovrapposta o popup, il parametro x è la coordinata x iniziale dell'angolo superiore sinistro della finestra, nelle coordinate dello schermo. Per una finestra figlio, x è la coordinata x dell'angolo superiore sinistro della finestra rispetto all'angolo superiore sinistro dell'area client della finestra padre. Se questo parametro è impostato su CW_USEDEFAULT, il sistema seleziona la posizione predefinita per l'angolo superiore sinistro della finestra e ignora il parametro y . CW_USEDEFAULT è valido solo per le finestre sovrapposte; se viene specificato per una finestra popup o figlio, i parametri x e y sono impostati su zero.

[in] y

Tipo: int

Posizione verticale iniziale della finestra. Per una finestra sovrapposta o popup, il parametro y è la coordinata y iniziale dell'angolo superiore sinistro della finestra, nelle coordinate dello schermo. Per una finestra figlio, y è la coordinata y iniziale dell'angolo superiore sinistro della finestra figlio rispetto all'angolo superiore sinistro dell'area client della finestra padre. Per una casella di riepilogo, y è la coordinata iniziale dell'angolo superiore sinistro dell'area client della casella di riepilogo rispetto all'angolo superiore sinistro dell'area client della finestra padre.

Se viene creata una finestra sovrapposta con il set di bit di stile WS_VISIBLE e il parametro x è impostato su CW_USEDEFAULT, il parametro y determina la modalità di visualizzazione della finestra. Se il parametro y è CW_USEDEFAULT, la gestione finestre chiama ShowWindow con il flag SW_SHOW dopo la creazione della finestra. Se il parametro y è un altro valore, la gestione finestre chiama ShowWindow con tale valore come parametro nCmdShow .

[in] nWidth

Tipo: int

Larghezza, in unità dispositivo, della finestra. Per le finestre sovrapposte, nWidth è la larghezza della finestra, nelle coordinate dello schermo o CW_USEDEFAULT. Se nWidthè CW_USEDEFAULT, il sistema seleziona una larghezza e un'altezza predefinita per la finestra; la larghezza predefinita si estende dalla coordinata x iniziale al bordo destro dello schermo e l'altezza predefinita si estende dalla coordinata y iniziale alla parte superiore dell'area dell'icona. CW_USEDEFAULT è valido solo per le finestre sovrapposte; se CW_USEDEFAULT viene specificato per una finestra popup o figlio, nWidth e nHeight sono impostati su zero.

[in] nHeight

Tipo: int

Altezza, in unità dispositivo, della finestra. Per le finestre sovrapposte, nHeight è l'altezza della finestra, nelle coordinate dello schermo. Se nWidth è impostato su CW_USEDEFAULT, il sistema ignora nHeight.

[in, optional] hWndParent

Tipo: HWND

Handle alla finestra padre o proprietario della finestra creata. Per creare una finestra figlio o una finestra di proprietà, specificare un handle di finestra valido. Questo parametro è facoltativo per le finestre popup.

Per creare una finestra solo messaggio, specificare HWND_MESSAGE o un handle a una finestra di solo messaggio esistente.

[in, optional] hMenu

Tipo: HMENU

Un handle a un menu o specifica un identificatore di finestra figlio a seconda dello stile della finestra. Per una finestra sovrapposta o popup, hMenu identifica il menu da usare con la finestra; può essere NULL se il menu della classe deve essere usato. Per una finestra figlio, hMenu specifica l'identificatore della finestra figlio, un valore intero utilizzato da un controllo finestra di dialogo per notificare agli eventi padre. L'applicazione determina l'identificatore della finestra figlio; deve essere univoco per tutte le finestre figlio con la stessa finestra padre.

[in, optional] hInstance

Tipo: HINSTANCE

Handle per l'istanza del modulo da associare alla finestra.

[in, optional] lpParam

Tipo: LPVOID

Puntatore a un valore da passare alla finestra tramite la struttura CREATESTRUCT (membro lpCreateParams ) a cui fa riferimento il param lParam del messaggio di WM_CREATE . Questo messaggio viene inviato alla finestra creata da questa funzione prima di restituire.

Se un'applicazione chiama CreateWindow per creare una finestra client MDI, lpParam deve puntare a una struttura CLIENTCREATESTRUCT . Se una finestra client MDI chiama CreateWindow per creare una finestra figlio MDI, lpParam deve puntare a una struttura MDICREATESTRUCT . lpParam può essere NULL se non sono necessari dati aggiuntivi.

Restituisce

Tipo: HWND

Se la funzione ha esito positivo, il valore restituito è un handle per la nuova finestra.

Se la funzione ha esito negativo, il valore restituito è NULL. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Valore restituito

nessuno

Osservazioni

Prima di restituire, CreateWindow invia un messaggio di WM_CREATE alla routine della finestra. Per finestre popup sovrapposte e figlio, CreateWindow invia WM_CREATE, WM_GETMINMAXINFO e WM_NCCREATE messaggi alla finestra. Il parametro lParam del messaggio di WM_CREATE contiene un puntatore a una struttura CREATESTRUCT . Se viene specificato lo stile WS_VISIBLE , CreateWindow invia la finestra tutti i messaggi necessari per attivare e visualizzare la finestra.

Se la finestra creata è una finestra figlio, la posizione predefinita si trova nella parte inferiore dell'ordine Z. Se la finestra creata è una finestra di primo livello, la sua posizione predefinita si trova nella parte superiore dell'ordine Z (ma sotto tutte le finestre più in alto a meno che la finestra creata non sia più in alto).

Per informazioni sul controllo se la barra delle applicazioni visualizza un pulsante per la finestra creata, vedere Gestione dei pulsanti della barra delle applicazioni.

Per informazioni sulla rimozione di una finestra, vedere la funzione DestroyWindow .

Le classi di sistema predefinite seguenti possono essere specificate nel parametro lpClassName . Si notino gli stili di controllo corrispondenti che è possibile usare nel parametro dwStyle .

Classe di sistema Significato
PULSANTE Designa una piccola finestra figlio rettangolare che rappresenta un pulsante che l'utente può fare clic per attivarlo o disattivarlo. I controlli pulsante possono essere usati solo o in gruppi e possono essere etichettati o visualizzati senza testo. I controlli pulsante cambiano in genere l'aspetto quando l'utente li fa clic. Per altre informazioni, vedere Pulsanti

Per una tabella degli stili del pulsante che è possibile specificare nel parametro dwStyle , vedere Stili pulsante.

COMBOBOX Definisce un controllo costituito da una casella di riepilogo e da un campo di selezione simile a un controllo di modifica. Quando si usa questo stile, un'applicazione deve visualizzare la casella di riepilogo in qualsiasi momento o abilitare una casella di riepilogo a discesa. Se la casella di riepilogo è visibile, digitando i caratteri nel campo di selezione viene evidenziata la prima voce della casella di riepilogo corrispondente ai caratteri digitati. Al contrario, selezionando un elemento nella casella di riepilogo viene visualizzato il testo selezionato nel campo di selezione.

Per altre informazioni, vedere Caselle combinate. Per una tabella degli stili casella combinata che è possibile specificare nel parametro dwStyle , vedere Stili casella combinata.

MODIFICA Definisce una finestra figlio rettangolare in cui l'utente può digitare testo dalla tastiera. L'utente seleziona il controllo e assegna lo stato attivo alla tastiera facendo clic o spostandolo su di esso premendo TAB. L'utente può digitare testo quando il controllo di modifica visualizza un cursore lampeggiante; utilizzare il mouse per spostare il cursore, selezionare i caratteri da sostituire o posizionare il cursore per l'inserimento di caratteri; oppure usare la chiave BACKSPACE per eliminare i caratteri. Per altre informazioni, vedere Modificare i controlli.

Per una tabella degli stili di controllo di modifica che è possibile specificare nel parametro dwStyle , vedere Edit Control Styles .For a table of the edit control styles you can specify in the dwStyle parameter, see Edit Control Styles.

LISTBOX Definisce un elenco di stringhe di caratteri. Specificare questo controllo ogni volta che un'applicazione deve presentare un elenco di nomi, ad esempio i nomi di file, da cui l'utente può scegliere. L'utente può selezionare una stringa facendo clic su di essa. Viene evidenziata una stringa selezionata e viene passato un messaggio di notifica alla finestra padre. Per altre informazioni, vedere Caselle di riepilogo.

Per una tabella degli stili casella di riepilogo che è possibile specificare nel parametro dwStyle , vedere Stili casella di riepilogo.

MDICLIENT Definisce una finestra del client MDI. Questa finestra riceve messaggi che controllano le finestre figlio dell'applicazione MDI. I bit di stile consigliati sono WS_CLIPCHILDREN e WS_CHILD. Specificare gli stili WS_HSCROLL e WS_VSCROLL per creare una finestra client MDI che consente all'utente di scorrere le finestre figlio MDI in visualizzazione.

Per altre informazioni, vedere Interfaccia a documenti multipli.

RichEdit Designa un controllo Microsoft Rich Edit 1.0. Questa finestra consente all'utente di visualizzare e modificare il testo con la formattazione di caratteri e paragrafi e di includere oggetti COM (Component Object Model) incorporati. Per altre informazioni, vedere Controlli rich Edit.

Per una tabella degli stili di controllo di modifica avanzati che è possibile specificare nel parametro dwStyle, vedere Rich Edit Control Styles.For a table of the rich edit control styles you can specify in the dwStyle parameter, see Rich Edit Control Styles.

RICHEDIT_CLASS Definisce un controllo Microsoft Rich Edit 2.0. Questi controlli consentono all'utente di visualizzare e modificare il testo con la formattazione di caratteri e paragrafi e di includere oggetti COM incorporati. Per altre informazioni, vedere Controlli rich Edit.

Per una tabella degli stili di controllo di modifica avanzati che è possibile specificare nel parametro dwStyle, vedere Rich Edit Control Styles.For a table of the rich edit control styles you can specify in the dwStyle parameter, see Rich Edit Control Styles.

SCROLLBAR Definisce un rettangolo che contiene una casella di scorrimento e ha frecce di direzione a entrambe le estremità. La barra di scorrimento invia un messaggio di notifica alla finestra padre ogni volta che l'utente fa clic sul controllo. La finestra padre è responsabile dell'aggiornamento della posizione della casella di scorrimento, se necessario. Per altre informazioni, vedere Barre di scorrimento.

Per una tabella degli stili di controllo barra di scorrimento che è possibile specificare nel parametro dwStyle , vedere Stili di controllo barra di scorrimento.

STATICO Definisce un campo di testo semplice, una casella o un rettangolo utilizzato per etichettare, casella o separare altri controlli. I controlli statici non accettano input e non forniscono alcun output. Per altre informazioni, vedere Controlli statici.

Per una tabella degli stili di controllo statici che è possibile specificare nel parametro dwStyle , vedere Stili di controllo statici.

 

CreateWindow viene implementato come chiamata alla funzione CreateWindowEx , come illustrato di seguito.

#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

Esempio

Per un esempio, vedere Uso delle classi finestra.

Nota

L'intestazione winuser.h definisce CreateWindow come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)

Vedi anche

Informazioni sull'interfaccia a documenti multipli

Classi di finestre di controllo comuni

Informazioni concettuali

CreateWindowEx

Destroywindow

AbilitaWindow

Altre risorse

Riferimento

Registerclass

RegisterClassEx

Showwindow

WM_COMMAND

WM_CREATE

WM_GETMINMAXINFO

WM_NCCREATE

WM_PAINT

Windows