1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
//Déclarations des WndProcs
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProcOsd(HWND , UINT , WPARAM , LPARAM );
// Enregistrement de deux structures WNDCLASSEX différentes
ATOM MyRegisterClass(HINSTANCE hInstance)
{
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, MAKEINTRESOURCE(IDI_IAMV3));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_IAMV3);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
WNDCLASSEX wcosd;
wcosd.cbSize = sizeof(WNDCLASSEX);
wcosd.style = CS_HREDRAW | CS_VREDRAW;
wcosd.lpfnWndProc = WndProcOsd;
wcosd.cbClsExtra = 0;
wcosd.cbWndExtra = 0;
wcosd.hInstance = hInstance;
wcosd.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_IAMV3));
wcosd.hCursor = LoadCursor(NULL, IDC_ARROW);
wcosd.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcosd.lpszMenuName = MAKEINTRESOURCE(IDC_IAMV3);
wcosd.lpszClassName = L"szWindowOsd";
wcosd.hIconSm = LoadIcon(wcosd.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcosd);
}
// WndProc numéro 1
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
HDC hdciam;
PAINTSTRUCT psiam;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Analyse les sélections de menu :
switch (wmId)
{
case IDM_EXIT:
DestroyWindow(osd);
break;
default:
return DefWindowProc(osd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(osd, &ps);
// TODO : ajoutez ici le code de dessin...
EndPaint(osd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(osd, message, wParam, lParam);
}
return 0;
}
// WndProc numéro 2
LRESULT CALLBACK WndProcOsd(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
HDC hdciam;
PAINTSTRUCT psiam;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Analyse les sélections de menu :
switch (wmId)
{
case IDM_EXIT:
DestroyWindow(osd);
break;
default:
return DefWindowProc(osd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(osd, &ps);
// TODO : ajoutez ici le code de dessin...
EndPaint(osd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(osd, message, wParam, lParam);
}
return 0;
} |
Partager