Remplir un HBITMAP créé par CreateCompatibleBitmap

Remplir un HBITMAP créé par CreateCompatibleBitmap - C++ - Programmation

Marsh Posté le 26-07-2003 à 12:57:39    

Voilà, je voudrais pouvoir sauver en mémoire une portion de mon écran (les pixels), cette portion étant délimitée par un rectangle, en vue de pouvoir réafficher les pixels plus tard.
J'ai utilisé CreateCompatibleBitmap mais je ne sais pas comment remplir mon HBITMAP obtenu avec les pixels se trouvant dans mon rectangle à l'écran.
 
Sinon, en DirectX, comme, je peux faire la même manip? Merci :)

Reply

Marsh Posté le 26-07-2003 à 12:57:39   

Reply

Marsh Posté le 26-07-2003 à 23:05:09    

rufo a écrit :

Voilà, je voudrais pouvoir sauver en mémoire une portion de mon écran (les pixels), cette portion étant délimitée par un rectangle, en vue de pouvoir réafficher les pixels plus tard.
J'ai utilisé CreateCompatibleBitmap mais je ne sais pas comment remplir mon HBITMAP obtenu avec les pixels se trouvant dans mon rectangle à l'écran.
 
Sinon, en DirectX, comme, je peux faire la même manip? Merci :)
 


 
si c'est une portion absolue, il faut capurer l'écran en créant un HDC de tout l'écran, sinon en prenant le HDC de la partie de ton soft.
 
appellons hOrigine ce HDC :
 

Code :
  1. hdcmem = CreateCompatibleDC(hOrigine);
  2. hBitmap = CreateCompatibleBitmap(hdcmem);
  3. SelectObject(hdcmem, hBitmap);
  4. BitBlt(hdc - > hdcmem, je sais plus par coeur voir MSDN ...);
  5. DeleteDC(hdcmem);


 
ton bitmap est enregistré dans hBitmap ;)


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
Reply

Marsh Posté le 28-07-2003 à 10:41:30    

jesus_christ a écrit :


 
si c'est une portion absolue, il faut capurer l'écran en créant un HDC de tout l'écran, sinon en prenant le HDC de la partie de ton soft.
 
appellons hOrigine ce HDC :
 

Code :
  1. hdcmem = CreateCompatibleDC(hOrigine);
  2. hBitmap = CreateCompatibleBitmap(hdcmem);
  3. SelectObject(hdcmem, hBitmap);
  4. BitBlt(hdc - > hdcmem, je sais plus par coeur voir MSDN ...);
  5. DeleteDC(hdcmem);


 
ton bitmap est enregistré dans hBitmap ;)


 
Merci :) Entre-temps, j'ai trouvé une méthode qui fait pareil mais via DirectX.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed