Afficher une image dans une fenêtre... (OK) [C] - C++ - Programmation
Marsh Posté le 16-07-2002 à 15:22:23
Bon, il suffit de lire ... 
http://www.winprog.org/tutorial/
Marsh Posté le 19-07-2002 à 14:26:22
J'ai un petit soucis de rafraichissement.... 
Dans mon 
Code :
  | 
 
J'ai ce qu'il me faut pour afficher correctement l'image, mais il faut absolument réduire la fenêtre ou passer une autre fenêtre au-dessus pour que son contenu soit correctement mis à jour ! 
 
Vous n'auriez pas une idée pour éviter ce problème ?
Marsh Posté le 19-07-2002 à 14:38:08
Mis à jour dans quelles circonstances ? Quand on change son contenu ? 
 
Le WM_PAINT est le bon endroit pour revoir l'image quand on fait alt+TAB pour y revenir (sinon, on affiche au lancement, puis feuille blanche ensuite).
Marsh Posté le 19-07-2002 à 14:42:46
Ben tu envoie le WM_PAINT à t'as fenêtre quand tu veux qu'elle se redécine, ou tu vais un invalidate dessus.
Marsh Posté le 19-07-2002 à 15:38:52
En fait, je me suis fait un petit prog qui me permet de choisir la fenêtre que je souhaite capturer et 'devrait' m'afficher dans une autre fenêtre ce qu'il a capturé... 
 
J'ai bien un   SenMessage(hwnd, WM_PAINT, 0, 0) 
mais il ne sert à rien... 
 
>LetoII : c'est quoi un invalidate ?
Marsh Posté le 19-07-2002 à 15:44:30
Regarde dans l'API windows, la fonction invalidate force une fenêtre à se redessiner.
Marsh Posté le 19-07-2002 à 15:51:09
Euh... c'est que là je suis en C... et à part les invalidates dans des classes.... 
 
Désolé, je dois partir !!! 
Merci pour vos réponses et à lundi !
Marsh Posté le 19-07-2002 à 16:05:27
| BB138 a écrit a écrit  : Euh... c'est que là je suis en C... et à part les invalidates dans des classes.... Désolé, je dois partir !!! Merci pour vos réponses et à lundi !  | 
 
 
Ben l'API windows est en C
Marsh Posté le 22-07-2002 à 09:08:24
Sorry... 
Dans ma recherche attive vendredi, je n'avais trouvé que des méthodes de classes C++ avec le nom invalidate...
Marsh Posté le 22-07-2002 à 09:20:00
Chez moi, SendMessage(hWnd, WM_PAINT, 0, 0) ne fonctionne pas toujours  
. Etonnant. 
 
Sinon, la fonction incontournable :  
BOOL InvalidateRect( 
 
    HWND hWnd,	// handle of window with changed update region   
    CONST RECT *lpRect,	// address of rectangle coordinates  
    BOOL bErase	// erase-background flag  
   );	
Marsh Posté le 22-07-2002 à 09:37:29
Merci ! 
C'est justement ce que je viens de remarquer ! 
 
Récapitulatif : 
SendMessage(hWnd, WM_PAINT, 0, 0); 
 
UpdateWindow(hWnd); 
 
 
InvalidateRect(hWnd, NULL, TRUE);  
  
 
et merci encore à vous !!!
Marsh Posté le 16-07-2002 à 08:59:50
Il me semblais avoir vu un topic là dessus mais je n'arrive plus à mettre la main dessus !
Message édité par bb138 le 23-07-2002 à 17:06:31