Bonjour,
Après avoir inscrit un message dans un StringGadget à l'aide de la fonction SetGadgetText, et après avoir donné le focus au StringGadget à l'aide de la fonction SetActiveGadget, le curseur revient au début du texte.
Du coup, si on tape du texte, il se place à gauche du texte précédemment envoyé au gadget.
Est-il possible de positionner le curseur à la fin du texte envoyé au StringGadget?
Merci.
StingGadget et curseur
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: StingGadget et curseur
La combine est de NETMAESTRO, BEACH et TRANQUIL

Code : Tout sélectionner
Enumeration
#Window_0
#String_0
#String_1
EndEnumeration
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
OpenWindow(#Window_0, 450, 200, 246, 84, "String Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_SizeGadget)
StringGadget(#String_0, 10, 5, 200, 20, "Coucou")
StringGadget(#String_1, 10, 25, 200, 20, "")
RedrawWindow_(WindowID(#Window_0), 0, 0, #RDW_INVALIDATE|#RDW_UPDATENOW)
Delay(3000)
SetActiveGadget(#String_1)
Delay(3000)
SetActiveGadget(#String_0)
Repeat
Event = WaitWindowEvent() ;Mise à la fin du curseur
Select EventType()
Case #PB_EventType_Focus
;SendMessage_(GadgetID(#String_0),#EM_SETSEL,$FFFFFFF,$FFFFFFF) ; Decommente cette ligne pour que le curseur se positionne a la suite ;-)
EndSelect
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver
-
- Messages : 41
- Inscription : mer. 30/déc./2009 10:11
Re: StingGadget et curseur
OK,
La commande SendMessage fonctionne.
A la place des $FFFFFFF on peut aussi mettre la longueur de la chaine de caractères.
Merci.
La commande SendMessage fonctionne.
A la place des $FFFFFFF on peut aussi mettre la longueur de la chaine de caractères.
Merci.