wxWidgets clignottement au resize [Résolu] - C++ - Programmation
Marsh Posté le 07-01-2005 à 20:15:47
Sous Windows je suppose. C'est parce que le fond est effacé avant que ta fenêtre se redessine, ce qui fait qu'on voit tout blanc un court instant et provoque ce flash. Essaye de spécifier le style wxNO_FULL_REPAINT_ON_RESIZE lors de la création de ta fenêtre.
Marsh Posté le 08-01-2005 à 21:58:28
il faut que je l'applique à tous les widgets ou juste la frame ? parce que là, la frame toute seule, ça fait rien
Marsh Posté le 08-01-2005 à 22:02:20
ReplyMarsh Posté le 08-01-2005 à 22:13:50
Et une frame seule ça supprime pas son clignotement de spécifier wxNO_FULL_REPAINT_ON_RESIZE ?
Marsh Posté le 08-01-2005 à 22:27:55
this->mainFrame = new AttractorsMainFrame(0, -1, _T("Attractors" ),wxDefaultPosition,wxDefaultSize,wxNO_FULL_REPAINT_ON_RESIZE|wxDEFAULT_FRAME_STYLE);
bah la frame, elle glignotte pas, c'est tous les widgets qui clignottent
j'veux dire, le fond gris, il reste gris, y'apa de blanc, mais par contre, les champs blancs on les voit clignotter sur le fond gris
Marsh Posté le 08-01-2005 à 23:07:46
A tout hasard, rajoute aussi un wxCLIP_CHILDREN de bon aloi.
Et essaye eventuellement de capturer l'évènement EVT_ERASE_BACKGROUND(AttractorsMainFrame::OnEraseBackGround)
avec un modeste:
void AttractorMainFrame::OnEraseBackGround(wxEraseEvent& event)
{
}
Si ça ne marche toujours pas, c'est zarbouille. Utilises-tu des sizers ?
Marsh Posté le 08-01-2005 à 23:35:55
je vais tenter ça, mais en attendnant, de répondre : oui, je n'utilise que des sizers
je début en wxWidgets en fait, et, étant habitué à swing, j'ai trouvé ma joie avec les sizers
Marsh Posté le 09-01-2005 à 00:14:54
bon, j'ai rajouté mon EVT_ERASE_BACKGROUND(AttractorsMainFrame::OnEraseBackGround) dans la table, le clip_children, mais nan ça clignotte toujours à mort, en fait, on voit alternativement le fond gris, les widgets, un fond gris, les widgets, mais que pendant que je redimentionne
de toutes façons, c'est pas très très grave, mais ce qui me fout les boules c'est que quand je fais le preview dans Glade, là c'est vraiment fluide, et je comprends pas pourquoi
Marsh Posté le 09-01-2005 à 22:09:57
Essaye d'appliquer wxNO_FULL_REPAINT_ON_RESIZE sur les sizers.
Marsh Posté le 09-01-2005 à 22:16:12
sur les panels plutôt, non ? Il me semble qu'il ne le met que sur sa Frame principale...
Marsh Posté le 09-01-2005 à 22:28:44
Oui, j'ai confondu avec wxSplitterWindow. Oublie ce que j'ai dit.
Marsh Posté le 10-01-2005 à 00:25:04
AH YAISSE, wxNO_FULL_REPAINT_ON_RESIZE sur les panels, ça résout exactement ce problème
enfin bon, y'a quand même des endroits qu'il faut redessiner mais au moins ça fait plus clignotter toute la frame
bon bah super, merci
Marsh Posté le 07-01-2005 à 19:15:26
Pourquoi quand je redimmentionne ma fenêtre que j'ai compilée moi même, y'a toute la surface qui clignotte, alors que le "preview" de glade me montre une fenêtre qui se redimentionne parfaitement ?
une histoire de buffering ?
Message édité par raytaller le 10-01-2005 à 00:27:17