[Windows]TextGadget+
Publié : sam. 11/avr./2015 11:09
Sous Windows, le petit TextGadget cache plein de fonctions, plus ou moins utiles comme le texte centré verticalement ou l'ajout de points de suspension si le texte est trop long, ...
[Edition] Mise à jour "&Lettre soulignée",#SS_NOPREFIX
M.
Code : Tout sélectionner
; voir ici https://msdn.microsoft.com/en-us/library/windows/desktop/bb760773%28v=vs.85%29.aspx
If OpenWindow(0,0,0,550,700,"TextGadget",#PB_Window_SystemMenu | #PB_Window_ScreenCentered|#PB_Window_SizeGadget)
TextGadget(0, 10, 10,250,20,"Gadget texte standard (texte aligné à gauche)")
TextGadget(1, 10, 40,250,20,"Gadget texte (texte aligné à droite)", #PB_Text_Right)
TextGadget(2, 10, 70,250,20,"Gadget texte (texte centré)",#PB_Text_Center)
TextGadget(3, 10,100,250,20,"Gadget texte avec bordure",#PB_Text_Border)
; Windows seulement
;-------------------
; Centré verticalement
TextGadget(4, 10,130,250,120,"Gadget texte (texte centré verticalement) + bordure", #SS_CENTERIMAGE|#PB_Text_Border)
CreateImage(0,250,120)
StartDrawing(ImageOutput(0))
Ellipse(70, 50, 30, 10, RGB(0,0,255))
Ellipse(186, 50, 30, 10, RGB(255,255,0))
LineXY(128, 80, 128, 150, RGB(255, 0, 255))
StopDrawing()
; Une image dans un textegadget
TextGadget(5, 10,260,250,120,"", #SS_BITMAP|#PB_Text_Border)
; Possible de remplacer #SS_BITMAP par #SS_ENHMETAFILE ou #SS_ICON
SendMessage_(GadgetID(5),#STM_SETIMAGE,#IMAGE_BITMAP,ImageID(0))
; Possible de remplacer #IMAGE_BITMAP par #IMAGE_CURSOR ou #IMAGE_ENHMETAFILE ou #IMAGE_ICON
; Une box simple et bordure noir
TextGadget(6, 10,390,250,20,"", #PB_Text_Center|#SS_BLACKFRAME)
; Une box simple
TextGadget(7, 10,420,250,20,"", #PB_Text_Center|#SS_BLACKRECT)
#SS_EDITCONTROL=$2000 ; ?
TextGadget(8, 10, 450,250,40,"Gadget texte zzzzzzzzzzzzzzzzzzzzaaaa(texte)",#SS_EDITCONTROL)
; Tronque le texte si trop long et met points de suspensions...
TextGadget(9, 10, 500,250,20,"Gadget texte Gadget texte Gadget texte Gadget texte (texte)",#SS_ENDELLIPSIS)
; Tronque le texte si trop long
TextGadget(10, 10, 530,250,20,"Gadget texte Gadget texte Gadget texte Gadget texte (texte)",#SS_PATHELLIPSIS)
; Tronque le texte si trop long
TextGadget(11, 10, 550,250,20,"Gadget texte Gadget texte Gadget texte Gadget texte (texte)",#SS_WORDELLIPSIS)
; Enfoncé
TextGadget(12, 270, 10,250,20,"",#SS_ETCHEDFRAME)
TextGadget(13, 270, 40,250,20,"",#SS_ETCHEDHORZ)
TextGadget(14, 270, 70,250,20,"",#SS_ETCHEDVERT)
;box bord gris
TextGadget(15, 270, 100,250,20,"",#SS_GRAYFRAME)
;box grise
TextGadget(16, 270, 130,250,20,"",#SS_GRAYRECT)
; Ne renvoie pas à la ligne
TextGadget(17, 270, 160,250,30,"Ne renvoie pas à la ligne Ne renvoie pas à la ligne",#SS_LEFTNOWORDWRAP)
; lettre souligné
TextGadget(18, 270, 190,250,20,"&Lettre soulignée",0)
SetWindowLongPtr_(GadgetID(18), #GWL_STYLE, GetWindowLongPtr_(GadgetID(18), #GWL_STYLE) & ~#SS_NOPREFIX)
SetGadgetText(18, GetGadgetText(18))
; clic, dbl clic, enable et disable sont notifiés dans la boucle
TextGadget(19, 270, 210,250,20,"Cliquez moi ",#SS_NOTIFY)
;? #SS_REALSIZECONTROL=$40; #SS_REALSIZEIMAGE
;?
; TextGadget(20, 270, 240,250,40,"",#SS_BITMAP|#SS_RIGHTJUST)
; SendMessage_(GadgetID(20),#STM_SETIMAGE,#IMAGE_BITMAP,ImageID(0))
; texte en noir même si le gadget est disabled
TextGadget(21, 270, 240,250,20,"disable",#SS_SIMPLE)
DisableGadget(21,1)
; un peu enfoncé
TextGadget(22, 270, 270,250,20,"ddd",#SS_SUNKEN)
; cadre blanc
TextGadget(23, 270, 300,250,20,"ddd",#SS_WHITEFRAME)
; box blanche
TextGadget(24, 270, 330,250,20,"ddd",#SS_WHITERECT)
Repeat
event=WaitWindowEvent(10)
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case 18
Debug "boooouuu"
Case 19
Debug "Surprise"
EndSelect
EndSelect
Until event=#PB_Event_CloseWindow
EndIf
M.