Bonjour,
j'aimerais savoir comment faire pour afficher un label sur un wxStaticBitmap. En effet, un "SetLabel()" (qui dérive de wxWindow) ne m'affiche rien (peut-être le label est-il recouvert par l'image bitmap?). merci beaucoup :)
Version imprimable
Bonjour,
j'aimerais savoir comment faire pour afficher un label sur un wxStaticBitmap. En effet, un "SetLabel()" (qui dérive de wxWindow) ne m'affiche rien (peut-être le label est-il recouvert par l'image bitmap?). merci beaucoup :)
Citation:
wxStaticBitmap::wxStaticBitmap
wxStaticBitmap()
Default constructor.
wxStaticBitmap(wxWindow* parent, wxWindowID id, const wxBitmap& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "staticBitmap")
Constructor, creating and showing a text control.
Parameters
parent
label
- Parent window. Should not be NULL. id Control identifier. A value of -1 denotes a default value.
pos
- Bitmap label.
size
- Window position.
style
- Window size.
name
- Window style
- Window name.
oui et ca veut dire quoi? que c'est pas possible de mettre un texte par dessus l'image?
je viens de trouver comment faire, en modifiant l'image :
reste plus qu'à centrer tout ca :mrgreen:Code:
1
2
3
4
5
6
7 wxString maChaine = "blablabla" ; wxBitmap bitmap(bouton_xpm); wxMemoryDC dc; dc.SelectObject(bitmap) ; dc.SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma"))) ; dc.DrawText( maChaine, 2, 2) ;
en fait ca reste extrêmement lourd d'écrire sur une image (parce que je le fais régulièrement et sur plusieurs dizaines d'images, que je ne peux pas tout stocker et qu'en plus les images sont recrées lors du redimentionnement de ma frame). il n'y aura pas un moyen moins lourd, sans passer par du dessin sur le bitmap?
en fait, je continu avec cette méthode ; j'ai mis le code précédent dans une fonction, je l'appelle une première fois : pas de problème, le résultat est nickel. je l'appelle une 2nde fois, et là, l'image est vide / blanche, pas de texte, pas d'image. quelqu'un aurait une idée svp? :?
si jamais ca interesse quelqu'un :
il faut détruire à la main wxMemoryDC.