Affichage d'image

Signaler
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009
-
Messages postés
2
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
21 avril 2010
-
Bonjour tout le monde!

Voila mon probleme:
Je me met a la programmation de l'API win32. J'essaye de faire un petit prog qui charge une image .bmp depuis le disque dur puis qui l'affiche.
Jusque la pas de probleme, par contre l'image s'efface des qu'une autre fenetre passe au dessus.
Si j'ai bien compris le probleme se situe au niveau du "case WM_PAINT".
D'où la question: Qu'est ce qu'il faut mettre dans WM_PAINT pour que l'image soit reaffichee qd il le faut.

Merci d'avance.

7 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Va voir dans mes sources tout ce qui traite des images.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009

Merci pour ta reponse,
J'ai regarde tes sources mais je comprend pas trop.

En fait dans un premier temps on doit reccupere le "contexte d'affichage" c'est ca?
Ca se fait plus ou moins comme ca non?
PAINTSTRUCT ps;
hdc = BeginPaint(hwnd, &ps);

apres on doit reeafficher l'image non?

Donc moi j'avais pensé a ca:
DrawState(hdc,NULL,NULL,(LPARAM) hBmp,NULL,0,0,0,0,DST_BITMAP);

enfin on termine par ca:
EndPaint(hwnd, &ps);

Voila...
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Tu avais pense et bien maintenant tu changes.
Le mien va bon alors tu reproduis.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009

Ah bah finalement j'ai reussi a faire un truc, ca marche mais je sais pas si c'est pour autant tres correct.

J'ai ca:
case WM_PAINT:

PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hwnd, &ps);
HDC memDC=GetDC(hwnd);
DrawState(memDC,NULL,NULL,(LPARAM)hBmp,NULL,0,0,0,0,DST_BITMAP);
EndPaint(hwnd, &ps);
break;

C'est bon ce truc la ou c'est de la M**** ?
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Pourquoi continuer avec DrawState puisque tu passes 0 sur les params d'effet ???
memDC ne te sers a rien puisque tu as deja le hdc.

Reproduis mon exemple, c'est pas sorcier.
Et etudie Petzold:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009

Ok ca y est j'ai pigé.
Merci pour tes reponses.
A +
Messages postés
2
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
21 avril 2010

comment afficher une image avec MFC en C++