LOUPE SIMPLE (WIN32)

Signaler
Messages postés
360
Date d'inscription
samedi 27 septembre 2003
Statut
Membre
Dernière intervention
30 mai 2006
-
julien_boss
Messages postés
165
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
24 octobre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23624-loupe-simple-win32

julien_boss
Messages postés
165
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
24 octobre 2007

Euh enfaite je ne comprends pas :
si on souhaite restaurer le bitmap "par défaut", pourquoi ne pas le restaurer dans le DC "par défaut" ; pourquoi ca : SelectObject(hMemDC, hOldMemBmp); et non SelectObject(hdc, hOldMemBmp);
?
julien_boss
Messages postés
165
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
24 octobre 2007

Ah ok je ne savais pas que (HBITMAP) SelectObject(hMemDC, hMemBmp); retournait le bitamp "par défaut". Je comprends mieux merci. Je vais donc réintégrer ces lignes à ma source pour être tout à fait propre ^^
Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:

C'est la philosophie de Windows, c'est tout.
Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
34
Salut:

Dans la programmation Windows, tu ne peux pas afficher une image directement sur une fenêtre, tu dois passer par une image qui se trouve en mémoire. Les deux premières lignes font ça:

Création d'un contexte d'affichage en mémoire compatible avec celui de la fenêtre.
Création d'une image compatible avec le contexte d'affichage de la fenêtre.

Dans la toisième ligne tu séléctionne ce bitmap dans le hMemDC et ça retourne le bitmap par défaut que tu enregistre dans une variable pour le restaurer après avoir finir le dessin, sinon tu auras une fuite de mémoire [memory leak].

Le 4eme ligne contient la fameuse fonction BitBlt (notament la plus heureuse) qui effectue des transferts de bloques de bits de la mémoire vers la fenêtre pour dessiner l'image en question.
SRCCOPY veut dire transfert sans modification.

La dernière ligne est déja expliquée elle fait retourner le HBITMAP par défaut du hMemDC.

J'espère que ça t'aides au moins.

Bye.