[Windows]TextGadget+

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

[Windows]TextGadget+

Message 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.
Dernière modification par Mesa le mar. 28/juil./2015 10:12, modifié 3 fois.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [Windows]TextGadget+

Message par falsam »

Merci Mesa. Stocké dans mes archives :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [Windows]TextGadget+

Message par Micoute »

Bonjour Mesa et merci beaucoup pour le partage, j'ai mis ça dans mon répertoire "ça peut servir"
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: [Windows]TextGadget+

Message par majikeyric »

Merci, très utile.
Répondre