[C++Builder] Message Windows de rafraichissement

Message Windows de rafraichissement [C++Builder] - C++ - Programmation

Marsh Posté le 17-04-2002 à 18:01:38    

j'aimerais capter le message zindoz ki indique que l'appli se "redessine"... Comment s'appelle-t-il...?
 
MERCI D'AVANCE

Reply

Marsh Posté le 17-04-2002 à 18:01:38   

Reply

Marsh Posté le 17-04-2002 à 18:03:41    

WM_PAINT


---------------
Le Tyran
Reply

Marsh Posté le 17-04-2002 à 18:31:19    

ouais, mais c pas celui-la ki m'interesse... Il doit y avoir un autre message ki permet de savoir quand l'ecran se rafraichit...

Reply

Marsh Posté le 17-04-2002 à 18:36:10    

Je vois pas trop où tu veux en venir, peux tu être plus précis?


---------------
Le Tyran
Reply

Marsh Posté le 17-04-2002 à 18:51:47    

Je t'explik le pb: en gros, lorsk je passe avec le pointeur de la souris, une image doit venir par dessus une autre... Seulement lorsk je passe la souris rapidement au dessus de l'image en question, le fait de faire "remonter" une autre image au premier plan provok des parasites, les 2 images se superposant pendant une période tres courte. Le fait d'intercepter un message de rafraichissement permettrait ptet de redessiner l'image avant ou apres le moment crucial ki fé foirer le truk...

Reply

Marsh Posté le 17-04-2002 à 18:56:54    

Le truc c d'appeler invalidate où ivalidaterect au bon moment, c tout. Ces fonction permettent de forcer une fenêtre ou un bout de celle ci à se redessiner, à près faut que tu programme corectemnt l'événement OnPaint (tu travail bien avec C++Builder?)


---------------
Le Tyran
Reply

Marsh Posté le 18-04-2002 à 09:40:21    

ouais, c ca, avec C++Builder...

Reply

Marsh Posté le 18-04-2002 à 10:56:46    

en fait, mon programme fait apparaitre une boite de dialogue (graphismes maison et non zindoz-like) dans laquelle je fais des rollover sur deux images-boutons (oui et non). J'ai donc mis un booléen à true uniquement lorsk cette fenetre est apparente, et dans mon Form::Paint() je lui dis:
 
SI (booléen vaut true) ALORS
{
    imageOui->Invalidate();
    imageNon->Invalidate();
}
 
le resultat est pas génial, cad ke ca "saute" toujours...
tu me parlais justement de la méthode Paint() pour ma Form, ptet tu as une idée...?

Reply

Marsh Posté le 18-04-2002 à 11:02:01    

Comme c un bug graphique c assez dure de répondre sans le voir. J'ai un peu de mal à saisir quel est le problème en fait.


---------------
Le Tyran
Reply

Marsh Posté le 18-04-2002 à 11:15:42    

Je t'explik avec le + de clarté possible:
 
a 1 certain moment déterminé dans mon programme, celui-ci affiche une image-fenetre qui pose une question à l'utilisateur.
Ce dernier peut répondre par 'oui' ou par 'non', et lorsk'il pose son curseur de souris sur 'oui' ou 'non', je fé apparaitre une image-bouton 'oui' ou 'non' illuminée. Et c le fait de faire apparaitre ces images superposées aux images derriere elles sur la Form qui bug. En gros, lorsk je pointe sur 'oui', il y a une image 'oui' illuminée ki vient par dessus, seulement elle "clignote" ou "saute" (en fait, je crois qu' o moment ou je me pose dessus elle doit traverser plusieurs couches d'images pour venir au premier plan, seulement ca se voit et ca fé un effet de pseudo-clignotement tres dégueu...).
C pour ca ke je demandais si il y avait une solution à ca, et la methode 'Invalidate()' à l'air sympa, mais je c pas m'en servir...

Reply

Marsh Posté le 18-04-2002 à 11:15:42   

Reply

Marsh Posté le 18-04-2002 à 11:20:37    

Je crois savoir pourquoi ça fais ça, tu fais trop de Invalidate.
Tu doit faire un invalidate au moment ou le curseur entre sur le bouton ce qui provoque son redessinement mais tu ne dois pas en faire quand le curseur reste sur le boutton. Il faut pas que tu mette le Invalidate dans le OnPaint du form à mo avis.


---------------
Le Tyran
Reply

Marsh Posté le 18-04-2002 à 11:27:14    

letoII a écrit a écrit :

Il faut pas que tu mette le Invalidate dans le OnPaint du form à mo avis.


:ouch: surtout pas !

Reply

Marsh Posté le 18-04-2002 à 11:40:35    

cad...?  :pt1cable:

Reply

Marsh Posté le 18-04-2002 à 11:48:42    

Cherche un peu c'est ton apli après tout! :)


---------------
Le Tyran
Reply

Marsh Posté le 18-04-2002 à 12:07:18    

ct po pour toi cette kestion...
t'as pas vu ce ke dit 'youdontcare'...?

Reply

Marsh Posté le 18-04-2002 à 12:09:46    

ha si, ben si tu fais un invalidate dans to OnPaint tu risque une boucle infini, mais bon ça dépend sur quoi tu fais le Invalidate


---------------
Le Tyran
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed