Copier contenu d'une fenetre dans un bmp

Résolu
cs_hwoarang Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 27 juin 2008 - 24 mars 2008 à 19:01
cs_hwoarang Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 27 juin 2008 - 25 mars 2008 à 19:15
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)
{
HDC hDcWindow = GetWindowDC(hWndWindow);
int ScreenX = GetDeviceCaps(hDcWindow, HORZRES);
int ScreenY = GetDeviceCaps(hDcWindow, VERTRES);

*phDcBitmap = CreateCompatibleDC(hDcWindow);

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

if(!SelectObject(pSnapData->m_hDcBitmap, hBitmap)) return 0;

if(!BitBlt(*phDcBitmap, 0, 0, ScreenX, ScreenY,
hDcWindow, 0, 0, SRCCOPY)) return 0;
}

Mes questions sont :
1 - Quand j'appelle la fonction avec un HWND d'une fenetre particuliere, GetDeviceCaps me renvoie la resolution de l'ecran meme quand je redimmentionne ma fenetre.
2 - L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais

Merci pour votre aide

5 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
24 mars 2008 à 20:23
C'est normal GetDeviceCaps(hDcWindow, HORZRES) te renvoie la taille de l'écran; pour une fenêtre utilise GetWindowRect() par exemple.
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
24 mars 2008 à 20:26
Pour connaitre la taille d'une fenetre : GetWindowRect
Si la fenetre est cachée ou réduite, je ne pense pas que tu pourra en récupérer une capture

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
cs_hwoarang Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 27 juin 2008
24 mars 2008 à 20:38
Merci pour vos reponses. C'est sur qu'on ne peut pas faire une capture d'une fenetre en dehors de l'ecran, reduite ou masquée par une autre fenetre ? Parce que comme BitBlt demande le HWND de la source, j'esperais que c'etait possible...
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
24 mars 2008 à 23:42
Tu peux toujours essayer...
0

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

Posez votre question
cs_hwoarang Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 27 juin 2008
25 mars 2008 à 19:15
Bah en fait, j'ai essayé et ca a pas l'air de changer grand chose quand je change le handle, c'est a dire que ca fait une copie de l'ecran.
Mais bon, c'est peut etre moi qui fait quelque chose de pas bon donc c'est pour ca que je demande si quelqu'un a deja fait ca...
0
Rejoignez-nous