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
| #include "tableau.h"
TABLEAU::TABLEAU(HINSTANCE hInstance,int noLignes, int noColonnes)
{
//On crée et enregistre la WndClassEx cTableau
cTableau.cbSize=sizeof(WNDCLASSEX);
cTableau.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
cTableau.lpfnWndProc=procedure;
cTableau.cbClsExtra=0;
cTableau.cbWndExtra=0;
cTableau.hInstance=hInstance;
cTableau.hIcon=LoadIcon(NULL, IDI_APPLICATION);
cTableau.hCursor = LoadCursor (NULL, IDC_IBEAM);
cTableau.hbrBackground = (HBRUSH) CreateSolidBrush(RGB(200,200,200));
cTableau.lpszMenuName = NULL;
cTableau.lpszClassName = "TABLEAU";
cTableau.hIconSm = 0;
RegisterClassEx(&cTableau);
//On crée un TABLEAU au nombre de lignes/colonnes demandées
cases = new CASE[noLignes][2];
//On enregistre les valeurs du nombre de lignes et de colonnes
nLignes = noLignes; nColonnes = noColonnes;
}
LRESULT CALLBACK TABLEAU::procedure(HWND fenetre, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_PAINT:
//On récupère les dimensions de la zone client dans un RECT
RECT client;
GetClientRect(fenetre,&client);
//-----------------------------------
//On calcule les coordonnées des futurs cases
int a;
for(a=0;a<=nLignes;a++)
{
//On calcule celles de la case de droite courante!
this.cases[a][1].coordonnees.left = client.left;
this.cases[a][1].coordonnees.top = a*20;
this.cases[a][1].coordonnees.right = client.right/2;
this.cases[a][1].coordonnees.bottom = (a+1)*20;
//On calcule celles de la case de gauche courante
}
break;
//----------------------------------------------------------------------
case WM_DESTROY:
PostQuitMessage(0);
break;
//----------------------------------------------------------------------
default:
return DefWindowProc(fenetre,message,wParam,lParam);
}
} |
Partager