I-0. Tutoriel 0 : Les bases de Win32▲
I-0-a. Résumé▲
Dans ce tutoriel préliminaire, nous allons passer en revue les éléments nécessaires pour créer une application Win32. Nous allons préparer une fenêtre vide pour l'utilisation de Direct3D 10.
I-0-b. Source▲
(SDK root)\Samples\C++\Direct3D10\Tutorials\Tutorial00
I-0-c. Préparation de la fenêtre▲
Chaque application Windows requiert au moins un objet fenêtre. Avant même de voir les spécificités de Direct3D 10, notre application doit avoir un objet fenêtre fonctionnel. 3 choses sont nécessaires :
1. Enregistrer la classe de la fenêtre
//
// Enregistrement de la classe de la fenêtre
//
WNDCLASSEX wcex;
wcex.cbSize =
sizeof
(WNDCLASSEX);
wcex.style =
CS_HREDRAW |
CS_VREDRAW;
wcex.lpfnWndProc =
WndProc;
wcex.cbClsExtra =
0
;
wcex.cbWndExtra =
0
;
wcex.hInstance =
hInstance;
wcex.hIcon =
LoadIcon(hInstance, (LPCTSTR)IDI_TUTORIAL1);
wcex.hCursor =
LoadCursor(NULL
, IDC_ARROW);
wcex.hbrBackground =
(HBRUSH)(COLOR_WINDOW+
1
);
wcex.lpszMenuName =
NULL
;
wcex.lpszClassName =
szWindowClass;
wcex.hIconSm =
LoadIcon(wcex.hInstance, (LPCTSTR)IDI_TUTORIAL1);
if
( !
RegisterClassEx(&
wcex) )
return
FALSE;
2. Créer un objet fenêtre
//
// Création de la fenêtre
//
g_hInst =
hInstance; // Stock l'identifiant de l'instance de notre variable globale
RECT rc =
{
0
, 0
, 640
, 480
}
;
AdjustWindowRect( &
rc, WS_OVERLAPPEDWINDOW, FALSE );
g_hWnd =
CreateWindow( szWindowClass, L"Direct3D 10 Tutoriel 0 : Preparation de la fenetre"
, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, rc.right -
rc.left, rc.bottom -
rc.top, NULL
, NULL
,
hInstance, NULL
);
if
( !
g_hWnd )
return
FALSE;
ShowWindow( g_hWnd, nCmdShow );
3. Récupérer et distribuer les messages de cette fenêtre
//
// Boucle principale des messages
//
MSG msg =
{
0
}
;
while
( GetMessage( &
msg, NULL
, 0
, 0
) )
{
TranslateMessage( &
msg );
DispatchMessage( &
msg );
}
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
PAINTSTRUCT ps;
HDC hdc;
switch
(message)
{
case
WM_PAINT:
hdc =
BeginPaint(hWnd, &
ps);
EndPaint(hWnd, &
ps);
break
;
case
WM_DESTROY:
PostQuitMessage(0
);
break
;
default
:
return
DefWindowProc(hWnd, message, wParam, lParam);
}
return
0
;
}
Celles-ci sont les étapes nécessaires pour configurer un objet fenêtre qui est nécessaire pour chaque application Windows. Si nous compilons et démarrons ce code, nous verrons une fenêtre avec un fond blanc.