myst78 | Salut,
Alors voila, je dois coder une ptite fonction qui se declenche apres une sequence style Ctrl+S, ou un bouton (mais bon ca peu importe c'est pas le pb)
Le but c'est que cette fonction elle fasse une capture d'ecran, puis qu'elle l'enregistre sur le disque avec l'heure de capture en nom de fichier (ca c'est bon c'est pas dur)
Donc en cherchant un peu j'ai trouve une facon de faire la capture (y'en a ptet d'autres remarque), je sais aussi comment enregistrer une image, mais (et c'est la le coeur du probleme) j'arrive pas a lier les deux
Je m'explique : en faisant la capture en fait ca me genere un handle, et ca marche puisque j'arrive a afficher la capture ds un canvas
mais je sais pas comment creer un TBitmap a aprtir de ce handle en fait
voila le code :
Code :
- void __fastcall TForm1::btnScreenClick(TObject *Sender)
- {
- TJPEGImage *screen = new TJPEGImage();
- int scrW=Screen->Width, scrH=Screen->Height;
- HWND hWnd = GetDesktopWindow();
- HDC hDC = GetDC(hWnd);
- BitBlt(paintBox->Canvas->Handle, 0, 0, scrW, scrH, hDC, 0, 0, SRCCOPY);
- ReleaseDC(hWnd,hDC);
- //ici je bloque, comment je fais pour obtenir mon image ??? :/
-
- screen->Compress();
- screen->SaveToFile(FormatDateTime("hh'h'mm'm'ss's'", Now())+".jpeg" );
- delete screen;
- }
|
voila c'est ptet pas la meilleur facon, mais bon je debute en prog windows et c'est le 1er truc que j'ai trouve... ---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
|