cs_hoGan
Messages postés20Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention 7 décembre 2005
-
6 déc. 2005 à 20:27
cs_hoGan
Messages postés20Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention 7 décembre 2005
-
7 déc. 2005 à 14:06
Bonjour à tous,
j'aimerais pouvoir afficher plusieurs images l'une à la suite de l'autre en cliquant plusieurs fois sur un bouton. Voici la façon dont je procède:
[Note : les variables sont bien sûr toutes déclarées avant]
//--- Dans la fonction principale --- :
hBitmap = LoadBitmap(wincl.hInstance, "IMAGE1");
GetObject(hBitmap, sizeof(BITMAP), &bm);
hdc = GetDC(hwnd);
hdcMem = CreateCompatibleDC(hdc);
hBitmap = (HBITMAP) SelectObject(hdcMem, hBitmap);
//-----------------------------------------------
//--- Dans la fonction de retour ---- :
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDC = BeginPaint(hwnd, &ps);
if(bButton == TRUE)
{
BitBlt(hDC, abscisse_image, 0,
bm.bmWidth,
bm.bmHeight,
hdcMem, 0, 0, SRCCOPY);
}
EndPaint(hwnd, &ps);
}
break;
case WM_COMMAND:
{
if(!bButton)bButton = TRUE;
abscisse_image = abscisse_image + 150;
InvalidateRect(hwnd, NULL, FALSE);
}
//-------------------------
Ce code fonctionne en ce qui concerne l'affichage successif d'images. Le problème, c'est que si j'abaisse puis remonte la fenêtre(perte de focus), seule la dernière image reste affichée.
Comment régler ce problème? Je veux que toutes les images soient présentes !
Je me suis dit qu'il fallait faire plusieurs dcMem; enfin je ne vois pas trop comment procéder :(