CreateWindowEx
Prototypes
HWND CreateWindowEx(DWORD StyleEtendu, LPCTSTR NomClasse, LPCTSTR Titre, DWORD Style, int X, int Y, int Largeur, int Hauteur, HWND HandleFenetreParent, HMENU HandleMenu, HINSTANCE HandleInstance, LPVOID Inutile);
Description
Crée une nouvelle fenêtre ayant les caractéristiques suivantes :
- Le style de la fenêtre est donnée par Style et StyleEtendu.
- La fenêtre est un objet de la classe NomClasse.
- Le titre de la fenêtre est donné par Titre.
- La taille de la fenêtre est donnée par le rectangle (X, Y, Largeur, Hauteur).
- Si la fenêtre est une sous-fenêtre, HandleFenetreMere désigne la fenêtre de rattachement.
- Si la fenêtre possède un menu, HandleMenu désigne le menu.
Le résultat est le handle identifiant la fenêtre créée.
Exemple
#include <windows.h>
#include <winbase.h>
HINSTANCE HandleInstance;
WNDCLASS MaClasse;
HWND HandleFenetre;
MSG Message;
static LRESULT CALLBACK WindowProcedure(HWND HandleFenetre, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
return(DefWindowProc(HandleFenetre, Message, wParam, lParam));
}
MaClasse.style=CS_HREDRAW|CS_VREDRAW;
MaClasse.lpfnWndProc=WindowProcedure;
MaClasse.cbClsExtra=0;
MaClasse.cbWndExtra=0;
MaClasse.hInstance=(HINSTANCE)HandleInstance;
MaClasse.hIcon=0;
MaClasse.hCursor=LoadCursor(0, IDC_ARROW);
MaClasse.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
MaClasse.lpszMenuName=NULL;
MaClasse.lpszClassName="MaClasse";
if (!RegisterClass(&Classe))
...
HandleFenetre=CreateWindowEx(0, "MaClasse", "Ma fenêtre", WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN|WS_HSCROLL|WS_VSCROLL|WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, HandleInstance, NULL);
if (!HandleFenetre)
...
while (PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
{
if (Message.message==WM_QUIT)
TranslateMessage(&Message);
DispatchMessage(&Message);
}
...
UnregisterClass("MaClasse", HandleInstance);
...
Avertissement
Le résultat est NULL en cas d'erreur.
Voir aussi
RegisterClass pour créer une classe de fenêtres. UnregisterClass pour supprimer une classe de fenêtres.
DefWindowProc pour exécuter le traitement par défaut des messages reçus.
PeekMessage pour prélever le message suivant. TranslateMessage pour traduire les raccourcis clavier. DispatchMessage pour envoyer le message à la fenêtre désignée.
LoadCursor pour charger un curseur. GetStockObject pour charger une ressource du référentiel Windows.
DestroyWindow détruire une fenêtre.