Pour le moment on ne peut qu'avoir du texte ou une image !
ButtonImageGadget() image+Texte
ButtonImageGadget() image+Texte
Serailt il possible d'avoir une fonction tout prête d'un bouton avec du texte+ une image ?
Pour le moment on ne peut qu'avoir du texte ou une image !
Pour le moment on ne peut qu'avoir du texte ou une image !
-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Le + simple me paraît de faire une image qui contient le texte et l'image et de l'attacher au bouton :
Bien sur si tu disposes d'une image de base pour le bouton, il est facile de la charger et de rajouter le texte en mode dessin.
Slts
Code : Tout sélectionner
ImageID = CreateImage(0, 100, 20)
StartDrawing(ImageOutput())
LineXY(3, 3, 14, 14, #Yellow)
LineXY(3, 14, 14, 3, #Yellow)
DrawingMode(1)
BackColor(0, 0, 0)
FrontColor(255, 255, 255)
Locate(20, 2)
DrawText("Bouton")
StopDrawing()
If OpenWindow(0,0,0,120,100,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ButtonImage") And CreateGadgetList(WindowID(0))
ButtonImageGadget(0,10,10,100,20,ImageID)
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Slts
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Dobro - FWeil : ça revient à ma lib, vos exemples
et ce n'est pas vraiment ce qu'on recherche, on veut garder le design du bouton XP et juste ajouter une icone à coté du texte
et ce n'est pas vraiment ce qu'on recherche, on veut garder le design du bouton XP et juste ajouter une icone à coté du texte
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Bon ben bouge pas, je vais sur mon ancien Forum.......
Voilà, évidemment, y a des corrections à apporter, j'avais pas compris visiblement à quoi servait les masques "&" à l'époque.
Je te mets la procédure que j'utilisais:
Comme ça, tu prends directement ce qui t'intéresse!

[EDIT] Bien sûr, c'est DrawFrameControl qui permet d'afficher un bouton dans ses différents états!
Voilà, évidemment, y a des corrections à apporter, j'avais pas compris visiblement à quoi servait les masques "&" à l'époque.
Je te mets la procédure que j'utilisais:
Code : Tout sélectionner
SUB DRAWITEM
hdcButton=di.hdc
SetBkMode(hdcButton, @transparent)
SetTextColor(hdcButton, rgb(57,128,244))
RE.L=0:RE.T=0:RE.R=C:RE.B=D
Dime.l1=50:Dime.T1=18:Dime.R1=100:Dime.B1=40
IF di.itemAction=1
DrawFrameControl(hdcButton, RE, @DFC_BUTTON, @DFCS_BUTTONPUSH)
drawIconEx(hdcButton , 10, 10, Smile, 32, 32, 0, 0, @DI_NORMAL)
DrawText(hdcButton, "Smile", -1, dime, @DT_LEFT )
ENDIF
IF di.itemState=17
DrawFrameControl(hdcButton, RE, @DFC_BUTTON, @DFCS_BUTTONPUSH|@DFCS_PUSHED)
drawIconEx(hdcButton , 12, 12, Anger, 32, 32, 0, 0, @DI_NORMAL)
DrawText(hdcButton, "Anger", -1, dime, @DT_LEFT )
ENDIF
IF di.itemState=16
DrawFrameControl(hdcButton, RE, @DFC_BUTTON, @DFCS_BUTTONPUSH)
drawIconEx(hdcButton , 10, 10, Smile, 32, 32, 0, 0, @DI_NORMAL)
DrawText(hdcButton, "Smile", -1, dime, @DT_LEFT )
ENDIF
IF di.itemState=@ODS_FOCUS & p=1
drawIconEx(hdcButton , 10, 10, Laugh, 32, 32, 0, 0, @DI_NORMAL)
SetBkMode(hdcButton, @opaque)
DrawText(hdcButton, "Laugh", -1, dime, @DT_LEFT )
Dime.l1=30 :Dime.T1=78:Dime.R1=228:Dime.B1=96
SetTextColor(hdcButton, rgb(128,128,244))
DrawText(hdcButton, "Return on the button", -1, dime, @DT_LEFT )
ENDIF
RETURN[EDIT] Bien sûr, c'est DrawFrameControl qui permet d'afficher un bouton dans ses différents états!
Voila un code qui fonctionne sur XP
J'ai pas mis toutes les constantes pour ne pas alourdir.
Pour l'image, vous trouverez bien quelque chose en 16x16 sur votre PC.
Chris 
J'ai pas mis toutes les constantes pour ne pas alourdir.
Pour l'image, vous trouverez bien quelque chose en 16x16 sur votre PC.
Code : Tout sélectionner
#Window = 0
#BCM_FIRST = $1600
#BCM_SETIMAGELIST = #BCM_FIRST + $0002
#BUTTON_IMAGELIST_ALIGN_LEFT = $0000
Enumeration
#Bouton1
EndEnumeration
Structure BUTTON_IMAGELIST
hImageList.l
margin.RECT
uAlign.l
EndStructure
Image.BUTTON_IMAGELIST
hImg = ImageList_LoadImage_(#Null,"dir.bmp",16,1,#CLR_DEFAULT,#IMAGE_BITMAP,#LR_LOADFROMFILE)
Image\hImageList = hImg
Image\uAlign = #BUTTON_IMAGELIST_ALIGN_LEFT
Image\margin\left = 10
If OpenWindow(#Window,0,0,200,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Bouton avec image")
CreateGadgetList(WindowID(#Window))
hButton1 = ButtonGadget(#Bouton1,10,10,180,25,"Image à gauche")
SendMessage_(hButton1,#BCM_SETIMAGELIST,0,Image)
Repeat
Select WindowEvent()
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Bouton1
SetWindowTitle(#Window,"Bouton cliqué")
EndSelect
Case #PB_Event_CloseWindow
quit = #True
EndSelect
Until quit
End
EndIf-
Le Soldat Inconnu
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
marche pas chez moi sous 2000 ton code Chris
zut, et je vois pas d'ou peu venir l'erreur.
tu l'as testé sur quel OS pou ne pas avoir d'os dans le fonctionnement de ce code ?
tu l'as testé sur quel OS pou ne pas avoir d'os dans le fonctionnement de ce code ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
