Trouver le HDC

gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004 - 9 juil. 2004 à 16:12
gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004 - 9 juil. 2004 à 20:49
Bonjour à tous. Voilà je suis sur un programme en c++ et je me trouve dans une interface dans laquelle je veux faire apparaitre des images réduites. Je réussis à reduire mes images mais il faut a tout pris que j ouvre celle ci en taille originale avant et que je l efface apres. Malheureusement cette méthode d'ajout et d'effacement peut cacher totalement mes images réduites si celle ci est grosse.
J ai donc chercher sur le net est j ai trouvé une méthode qui necessite pas l affichage de l'image et qui utilise la méthode StretchBlt comme moi. Malheureusement cette méthode utilse un
HDC hdc=GetDC(NULL) ,
moi cette fonction retourne un CDC * et ne veut pas de paramètre , résultat ca plante à chaque fois . De plus la fonction StretchBlt ne veut pas les même paramètres. Je sais pas si il faut travailler dans une classe précise, ou une view, in doc.. Quelqu'un pourrait t il m aider svp.....
Merci d 'avance

5 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
9 juil. 2004 à 16:54
C'est un api windows, il n'y a pas de classe
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juil. 2004 à 17:39
GetDC()->m_hDC;
ou bien
::GetDC(0);
0
gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004
9 juil. 2004 à 19:09
Merci le GetDC()->m_hDC marche, je cherche encore pour bien afficher mais là ca m aide vraiment.
J ai juste une question en plus, dans la doc j ai:

StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );

mais dans les notes trouvés le code c :

StretchBlt(hBmpDC1, 0, 0,100,100, hBmpDC2, 0,0,info.bmWidth,info.bmHeight,SRCCOPY );

les déclarations ne sont pas identique pourtant g trouvé qu une seule définition, y a une explication ? ou une doc en plus qui traine, ca pourrait aidé..
merci
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juil. 2004 à 19:38
L'explication est la même que pour GetDC: tu utilises les MFC, donc certaines fonction Win32 sont surchargées, et des méthodes de CDialog par exemple portent le même nom, et masquent donc les fonctions Win32. Le moyen d'éviter ces problème, est dans un premier temps de choisir si tu utilises les MFC ou pas. Si tu utilises les MFC, ton HDC sera un CDC, et tu auras la plupart du temps moins de code à taper. Si tu veux coder en Win32 normal, il faut que tu mettes :: devant chaque fonction surchargée, pour dire que tu va le chercher dans l'espace de noms global. Par exemple ::StretchBlt au lieu de StretchBlt. Je pense cependant que puisque tu fais un code avec les MFC, utilise toujours les classes existantes, et donc un CDC au lieu d'un HDC.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004
9 juil. 2004 à 20:49
Je te remercie vecchio56 pour tes explications et pour ton aide, maintenant c plus clair pour moi. Je comprenais pas qu'il y ai différentes déclarations pour chaque fonctions mais qu on nous en donnait qu une. Merci encore..
0
Rejoignez-nous