vixare
Messages postés1Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention 5 juillet 2006
-
5 juil. 2006 à 12:06
vincelefou
Messages postés16Date d'inscriptionvendredi 24 décembre 2004StatutMembreDernière intervention28 juillet 2007
-
5 juil. 2006 à 14:59
Bonjour à tous je debute en C++ sous windows et je voulais créer une fenêtre(fond bleu ) découpé en 9 rectangles à la bordure jaune.La fenêtre s'affiche normalement mais les rectangles n'apparaissent pas si quelqu'un peut m'aider merci beaucoup.
Voila le code :
#include <windows.h>
//------------------------------------------------------------------------------
// Comme il n'y a pas de fichier ressource ; on n'utilisera pas non plus
// de fichier .h, afin de simplifier au maximum.
// Toutes les définitions sont dans le fichier principal....
//------------------------------------------------------------------------------
#define Ox9 2 * nLarg //coord rectangle ou région 9:
#define Oy9 2 * nHaut //{2*nLarg,2*nHaut,3*nLarg,3*nHaut};
#define X nLarg / 10
#define Y nHaut / 10
static int nLarg;
static int nHaut;
static int nXdroit;
static int nXgauche;
static int nYhaut;
static int nYbas;
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
HWND_DESKTOP,
NULL, // Menu créé sans fichier ressource
// cet argument reste à NULL
hThisInstance,
NULL
);
FrameRect(hDc, &rectangle_1, hJaune); // Bordure du rectangle 1 en jaune
// On colorie les autres rectangles ...
FrameRect(hDc, &rectangle_2, hJaune);
FrameRect(hDc, &rectangle_3, hJaune);
FrameRect(hDc, &rectangle_4, hJaune);
FrameRect(hDc, &rectangle_5, hJaune);
FrameRect(hDc, &rectangle_6, hJaune);
FrameRect(hDc, &rectangle_7, hJaune);
FrameRect(hDc, &rectangle_8, hJaune);
FrameRect(hDc, &rectangle_9, hJaune);
DeleteObject(hJaune);
EndPaint(hWnd, &ps);
break;
}
case WM_RBUTTONUP : // click sur le bouton droit affiche le menu -------
// à l'endroit du click
// sous forme d'une barre.
{
point.x = LOWORD(lParam); // On récupère les coordonnées
point.y = HIWORD(lParam); // de la position de la souris
// au moment du click droit.
break;
}// fin case WM_RBUTTONUP ------------------------------------------
case WM_MENUSELECT :
{
switch (LOWORD(wParam)) // On récupère l'ID de l'option en surbrillance-
{
case IDM_QUITTER :// cas d'une mise en surbrillance sur l'option
// quitter du menu
{
default :
{
// on laisse (ou on remet) le texte original de légende.
SetWindowText(hWnd,"<Morpion multijoueur>");
InvalidateRect(hWnd,NULL,TRUE);
}
} // fin switch (LOWORD(wParam))----------------------------------
break;
}// fin case WM_MENUSELECT ---------------------------------------------
case WM_COMMAND : // click sur les options menu (wParam contient l'ID
// de l'option cliquée)
{
// rappel :
// WM_COMMAND : Message généré par un click sur l'une des options
// du menu que nous avons crée
// LOWORD (wParam) : ID de l'option menu
// HIWORD (wParam) : 0
// lParam : 0
//
// HIWORD valant 0 ; on peut au choix utiliser (DANS CE CAS) :
// switch (wParam) ou
// switch (LOWORD (wParam))
// Par souci de lisibilité, il me paraît judicieux d'utiliser
// switch (LOWORD (wParam)) ...
//
switch (LOWORD(wParam)) // ---------------------------------------
{
case IDM_NOUVELLEPARTIE : // INACTIVE ; pas d'envoi de
// message WM_COMMAND.
// Ce choix ne sera jamais
// réalisé tant que l'option
// est définie INACTIVE.
case IDM_INSTRUCTIONS : // idem
{
MessageBox(hWnd,"Pour jouer le joueur 1 utilise le bouton gauche de la souris et le joueur 2 le bouton droit",
"Info de service",MB_OK);
break;
} // fin case IDM_AIDE --------------------------------------
case IDM_QUITTER : // option menu quitter // ----------------
{
int quit = 0; // Pour récupérer la réponse de l'utilisateur.
} // fin switch (wParam) -----------------------------------------
break;
} // fin case WM_COMMAND --------------------------------------------
case WM_SYSCOMMAND : // -------------------------------------------------
{switch (wParam) // ---------------------------------------------
{
case SC_CLOSE : // cas d'un click sur la croix de fermeture
{
int quit = 0;
quit = MessageBox(hWnd,"Voulez vous réellement Quitter?",
szClassName,MB_YESNO|MB_ICONQUESTION);
if (quit == IDNO) {return 0; break;}
SendMessage( hWnd, WM_CLOSE, 0, 0);
break;
}
// fin case SC_CLOSE ----------------------------------------
default : // on renvoie tous les autres messages système à
// windows selon la procédure normale.
}// fin switch (wParam) -----------------------------------------
break;} // fin case WM_SYSCOMMAND ----------------------------------
case WM_CLOSE: // -------------------------------------------------------
{
DestroyWindow( hWnd );
break;
} // fin case WM_CLOSE --------------------------------------------------
case WM_DESTROY:
{
PostQuitMessage (0);
// Destruction des pinceaux
DeleteObject(hBlanc);
DeleteObject(hGris);
DeleteObject(hJaune);
DeleteObject(hRouge);
return 0;
}
//------------------------------------------------------------------------------
// fin du code
//------------------------------------------------------------------------------