Bonjour tout le monde.
Sous wxWidget j'ai envie d'afficher une image dans une Frame (wxMDIChildFrame). Lorsque je ne met rien d'autre dans la Frame, ca fonctionne très bien, c'est a dire que mon image, à l'aide de wxDCPaint est affichée dans ma fenêtre. Mais maintenant dans cette fenêtre j'affiche plein de controles dans des Sizer.
Pour gérer tout ca, je crée, à l'init de ma fenetre, un panel. Ensuite je lui affecte le sizer qui contient tous mes controles a l'aide de SetSizer.
Donc mes objets s'affichent bien, mais l'image ne s'affiche plus. Normal, elle est écrasée par le panel. Donc elle n'est plus dessinée.
Alors j'ai essayé de déclarer un evenement EVT_PAINT (qui dessine l'image tout le temps), voici ma fonction OnPaint :
Cela n'affiche toujours rien du tout. Je me suis dit que c t parce que je dessinais mon PaintDC directement sur ma frame au lieu du panel.J'ai donc essayé de le dessiner sur le panel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void CGame::OnPaint ( wxPaintEvent& WXUNUSED(event) ) { wxPaintDC loc_o_dcPaint( this ); loc_o_dcPaint.DrawBitmap( *m_po_bitmap_letters, 200, 25, false); }
Et là, 2 choses se produisent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wxPaintDC loc_o_dcPaint( m_po_panel );
1) Ca m'affiche l'image par dessus le panel, mais ca rame et ca bloque le processeur a 100%.
2) Mon panel n'est jamais rafraichi, sauf lors d'un Resize de ma fenetre...
J'ai pas l'impression de pouvoir passer par le OnPaint...
Que fais-je de mal ? Comment faut-il faire pour marier un panel et une image ?
Merci pour votre aide !
Alex.
Partager