Page 1 sur 1

[Windows]TextGadget+

Publié : sam. 11/avr./2015 11:09
par Mesa
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, ...

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

[Edition] Mise à jour "&Lettre soulignée",#SS_NOPREFIX

M.

Re: [Windows]TextGadget+

Publié : sam. 11/avr./2015 13:27
par falsam
Merci Mesa. Stocké dans mes archives :)

Re: [Windows]TextGadget+

Publié : sam. 11/avr./2015 15:41
par Micoute
Bonjour Mesa et merci beaucoup pour le partage, j'ai mis ça dans mon répertoire "ça peut servir"

Re: [Windows]TextGadget+

Publié : sam. 11/avr./2015 17:11
par majikeyric
Merci, très utile.