Bonjour,
j'ai une fenêtre contenant un wxSplitterWindow découpant la fenêtre en deux verticalement, et j'ai une wxListBox d'un coté et un wxPanel de l'autre sur lequel je désirerait dessiner un graphique de type camembert
j'ai donc regardé ce tutoriel:
http://chgi.developpez.com/wxwidgets/chap3/
seulement, si je fait comme cela, rien ne s'affiche,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_PAINT(MyFrame::OnPaint) END_EVENT_TABLE() void MyFrame::OnPaint(wxPaintEvent& evt) { wxPaintDC * MonDc = new wxPaintDC(this); MonDc->DrawRectangle(125,25,90,90); wxFont MaFont = wxFont(20, wxSWISS , wxNORMAL, wxNORMAL, false, "Arial Black"); MonDc->SetFont(MaFont); MonDc->DrawRotatedText("Bonjour",0,100,45); wxBrush MaBrush = wxBrush("RED",wxSOLID ); MonDc->SetBrush(MaBrush) ; MonDc->DrawCircle(300,70,50) ; wxColour MaCouleur = wxColour(0,0,255); wxPen MonCrayon = wxPen(MaCouleur,10,wxSOLID); MonDc->SetPen(MonCrayon); MonDc->DrawLine(120,20,220,120); MonDc->DrawLine(220,20,120,120); delete MonDc; }
et si je fait comme cela, cela dessine bien sur le panel mais sa efface le reste de la fenêtre puis lorsque l'on essaye de quitter le programme, le programme plante.
wxPaintDC * MonDc = new wxPaintDC(panel);
Pour résumer, il semblerait qu'on ne puisse dessiner dans une fenêtre que si il n'y a rien dedans, comme dans le tutoriel.
Donc ma question est: comment faire pour dessiner sur un wxPanel, ou alors par quoi dois-je remplacer le wxPanel?
Je programme avec devc++ sous windows et kdevelop sous linux.
Partager