Quelle est la méthode préférée, la méthode 1 ou la méthode 2 ?
Méthode 1 :
LRESULT CALLBACK wpMainWindow(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
switch (msg)
{
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
GetClientRect(hwnd, &rc);
hdc = BeginPaint(hwnd, &ps);
// drawing here
EndPaint(hwnd, &ps);
break;
}
default:
return DefWindowProc(hwnd, msg, wparam, lparam);
}
return 0;
}
Méthode 2 :
LRESULT CALLBACK wpMainWindow(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
switch (msg)
{
case WM_PAINT:
GetClientRect(hwnd, &rc);
hdc = BeginPaint(hwnd, &ps);
// drawing here
EndPaint(hwnd, &ps);
break;
default:
return DefWindowProc(hwnd, msg, wparam, lparam);
}
return 0;
}
Dans la méthode 1, si msg = WM_PAINT lorsque la fonction wpMainWindow est appelée, alloue-t-elle de la mémoire pour toutes les variables de la pile au début ? ou seulement lorsqu'il entre dans la portée WM_PAINT ?
La méthode 1 n'utiliserait-elle la mémoire que lorsque le message est WM_PAINT, et la méthode 2 utiliserait-elle la mémoire quel que soit le msg égalé ?