begin process at 2012 05 29 01:05:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Copier contenu d'une fenetre dans un bmp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Copier contenu d'une fenetre dans un bmp

lundi 24 mars 2008 à 19:01:26 | Copier contenu d'une fenetre dans un bmp

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)
{
   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

lundi 24 mars 2008 à 20:23:57 | Re : Copier contenu d'une fenetre dans un bmp

juju12

Réponse acceptée !
C'est normal GetDeviceCaps(hDcWindow, HORZRES) te renvoie la taille de l'écran; pour une fenêtre utilise GetWindowRect() par exemple.
lundi 24 mars 2008 à 20:26:32 | Re : Copier contenu d'une fenetre dans un bmp

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
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

lundi 24 mars 2008 à 20:38:09 | Re : Copier contenu d'une fenetre dans un bmp

hwoarang

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...
lundi 24 mars 2008 à 23:42:08 | Re : Copier contenu d'une fenetre dans un bmp

juju12

Tu peux toujours essayer...
mardi 25 mars 2008 à 19:15:46 | Re : Copier contenu d'une fenetre dans un bmp

hwoarang

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...


Cette discussion est classée dans : int, ecran, fenetre, copier, hdcwindow


Répondre à ce message

Sujets en rapport avec ce message

Resolution [ par machistador ] Bonjour, j'aimerais savoir comment changer la resolution de l'ecran sur une fenetre MS DOS en C sous Visual. J'aimerais aussi savoir s'il est possible redimensionne une fenetre en visual c++ 6.0 [ par maesp ] mon probleme est le suivant :quand j'agrandis ma fenetre les coposants qui y sont placé ne suive pas l'agrandissement de la fenetreje me retrouve avec fenetre en plein ecran [ par tcok ] slt a tous(re slt pour BruNews)je reviens sur mon probleme qui me donne beaucoup de fil a retordre..;g ma fenetre en plein ecran (donc elle cache la b recupérer le bitmap d'une fenetre sous borland c++ 5 [ par lele94 ] Je voudrais faire une copie d'ecran ou de fenetre sans passer par la touche impr ecran.je pensais y arriver avec des fonctions strectchDIbits, etc .. créer une fenetre en plus d'une fenetre glut [ par ldllaurent82 ] Bonjour,J'aimerais pouvoir créer un interface (avec boutons et autres) en plus de ma fenetre opengl ouverte avec glut.Le problème c'est que je ne peux Effacer le contenu d'une fenetre... [ par Galmiza ] Salut,Actuellement, pour effacer l'ecran je trace un rectangle plein blanc sur la fenetre.Or bizarrement, cette methode fait anormalement ramer le PC fenetre premier plan topmost [ par jphotension ] ? ??????????? ?Voila bonjour, g un pti pb, c ke j'aimerai savoir comen faire pour que ma fenetre compilé a Dev C++ ( en C ) r Recuperer les infos de la fenetre [ par Galmiza ] Hola !Quand on cree une fenetre comme suit,hWnd = CreateWindow( NAME, TITLE, WS_OVERLAPPEDWINDOW, 0, 0, 800, Manipulation de fenetres en C [ par bibi1782 ] Salut,je suis a la recherche de fonction C de manipulation de fenetres.En particulier :- une fonction pour déplacer une fenetre du style : void depl [ C ] copier ds un tableau apres un read? [ par lcstriker ] bonjour!!!g un leger probleme, que je suis sur vous serai nombreux a pouvoir resoudre:#include #define BUFF_SIZE 42int main(int ac, char **av){


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales