Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier contenu d'une fenetre dans un bmp

11 réponses
Avatar
Hwoarang
Bonjour,

Je ne suis pas un expert dans la prog windows donc j'ai recupéré un bout de
code qui permet de faire une capture d'ecran et qui marche. Seulement voila,
j'aimerais ne copier qu'une seule fenetre, que celle-ci soit visible à
l'ecran ou pas (meme si elle est reduite).

J'utilise donc :
int TakeShot(HWND hWndWindow, HDC *phDcBitmap, HBITMAP *phBitmap)
{
RECT rect;
HDC hDcWindow = GetWindowDC(hWndWindow);
int ScreenX = GetDeviceCaps(hDcWindow, HORZRES);
int ScreenY = GetDeviceCaps(hDcWindow, VERTRES);
GetWindowRect(hWndWindow, &rect);

*phDcBitmap = CreateCompatibleDC(hDcWindow);

*phBitmap = CreateCompatibleBitmap(hDcWindow, ScreenX, ScreenY);

if(!SelectObject(*phDcBitmap, *phBitmap)) return 0;

if(!BitBlt(*phDcBitmap, 0, 0, rect.right, rect.bottom,
hDcWindow, 0, 0, SRCCOPY)) return 0;
}

Ma question est :
L'image que je recupere est une capture de l'ecran complet et pas seulement
de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais
recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de
l'ecran ou visible. Est ce que c'est possible ?

Merci

1 réponse

1 2
Avatar
Christian ASTOR
Hwoarang wrote:
Ce que je ne comprend pas, c'est que meme quand ma fenetre firefox est
visible, je ne vois qu'un rectangle noir lorsque je colle dans paint.



PrintWindow() comme j'ai dit (pas WM_PRINT ou WM_PRINTCLIENT)

Concernant le setparent, j'ai l'impression que je n'ai pas sysfader (il
n'apparait pas dans le gestionnaire de taches). Est ce que je peux
utiliser autre chose ?



sysfader ?!
"SysPager", un des Common Controls, qu'on crée avec CreateWindow()
1 2