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