[Résolu] wxWidgets clignottement au resize

wxWidgets clignottement au resize [Résolu] - C++ - Programmation

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
Reply

Marsh Posté le 07-01-2005 à 19:15:26   

Reply

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.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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

Reply

Marsh Posté le 08-01-2005 à 22:02:20    

Quel OS ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-01-2005 à 22:08:27    

XP

Reply

Marsh 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 ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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

Reply

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 ?

Reply

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

Reply

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

Reply

Marsh Posté le 09-01-2005 à 00:14:54   

Reply

Marsh Posté le 09-01-2005 à 22:09:57    

Essaye d'appliquer wxNO_FULL_REPAINT_ON_RESIZE sur les sizers.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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

Reply

Marsh Posté le 09-01-2005 à 22:28:44    

Oui, j'ai confondu avec wxSplitterWindow. Oublie ce que j'ai dit.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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

Reply

Sujets relatifs:

Leave a Replay

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