Membres inscrits :598
Membres en ligne : 0
Invités en ligne : 5


|
| Conversation (Résolue) : Probleme bitmap |
yannp (Membre)
Inscrit le : 02-06-2010
Messages: 59
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
J'ai, je pense, un problème simple à résoudre, mais bon ...
Je souhaite tout simplement afficher un bitmap et j'ai l'erreur suivante à la compilation :
C:\Documents and Settings\yannp\Mes documents\Perso\Developpement\wx\YAPE_Music\windowsComposition.cpp|141|error: no matching function for call to `wxDC::DrawBitmap(wxBitmap*&, int, int, bool)'| C:\SourceCode\Libraries\wxWidgets2.8\include\wx\dc.h|271|note: candidates are: void wxDCBase::DrawBitmap(const wxBitmap&, wxCoord, wxCoord, bool)| C:\SourceCode\Libraries\wxWidgets2.8\include\wx\dc.h|274|note: void wxDCBase::DrawBitmap(const wxBitmap&, const wxPoint&, bool)| ||=== Build finished: 3 errors, 0 warnings ==
la méthode :
Code: void partition::OnDraw(wxDC &dc) { int i, x, y; wxBitmap *b; b= new wxBitmap (wxT("C:\\clef_sol.bmp"), wxBITMAP_TYPE_BMP); this->GetVirtualSize(&x, &y) ; dc.SetPen (*wxGREY_PEN); dc.DrawBitmap(b, 20, 50, true); for (i=0;i<y/zoom;i+=1) dc.DrawLine(zoom+1, i*zoom, x, i*zoom); dc.SetPen (*wxBLACK); for (i=0;i<5;i++) dc.DrawLine(zoom+1, i*zoom, x, i*zoom); }
merci d'avance....
| |
|
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne |
bonjour, il te faut déférencer ton pointeur sur l'image comme cela :
Code wxWidgets:dc.DrawBitmap(*b, 20, 50, true);
Cela dit, c'est une très mauvaise approche que tu as, car tu vas charger l'image à chaque appel de OnDraw. L'idéal serait de charger à l'avance ton image.
Par exemple :
Code wxWidgets: partition::partition(..) { ... m_ClefDeSol = new wxBitmap(wxT("C:\\clef_sol.bmp"), wxBITMAP_TYPE_BMP); ... } partition::~partition() { wxDELETE(m_ClefDeSol); } void partition::OnDraw(wxDC &dc) { int i, x, y; this->GetVirtualSize(&x, &y) ; dc.SetPen (*wxGREY_PEN); dc.DrawBitmap(*m_ClefDeSol, 20, 50, true); for (i=0;i<y/zoom;i+=1) dc.DrawLine(zoom+1, i*zoom, x, i*zoom); dc.SetPen (*wxBLACK); for (i=0;i<5;i++) dc.DrawLine(zoom+1, i*zoom, x, i*zoom); }
Sem
Dernière modification par Sem (18-06-2010 17:44:06)
| |
|
yannp (Membre)
Inscrit le : 02-06-2010
Messages: 59
Snippets: 0
Tutoriels: 0
Hors ligne |
Salut, Ok ça marche. Je suis d'accord avec toi (pour le chargement de l'image), mais c'est un essai.
Merci d'avance. Yann
Dernière modification par yannp (21-06-2010 14:32:22)
| |
|
|