Ich komme nicht ganz hinter den Gedanken von Aspirant.FGK hat geschrieben:@Edel
Ok - dank deinem Hinweis senden wir nun mit einer "0"
den richtigen Verarbeitungscode.
Trotzdem bleibt der Schönheitsfehler daß das eingegebne
Zeichen noch kurz zu sehen ist.
Hast du dazu noch ne Idee? Damit wir Aspirant ne zufrieden
stellende Lösung bieten können.
Gruß FGK
Aber wenn du #wm_keyup mit #wm_char ersetzt und auf
Gross- und Kleinschreibung achtest wird nichts mehr angezeigt
Code: Alles auswählen
If #WM_CHAR = msg
Select wParam
Case #VK_A,#VK_A+32 ; 'a', 'A'
SetGadgetText(0,"")
ProcedureReturn 0
EndSelect
EndIf
Code: Alles auswählen
Procedure SetCallbackEx(hwnd.l, Proc.l)
Protected OldProc = SetWindowLong_(hwnd, #GWL_WNDPROC, Proc)
If OldProc
SetWindowLong_(hwnd, #GWL_USERDATA, OldProc)
EndIf
ProcedureReturn OldProc
EndProcedure
Procedure Callback(hwnd,msg,wParam,lParam)
Protected OldProc = GetWindowLong_(hwnd, #GWL_USERDATA)
If #WM_CHAR = msg
Select wParam
Case #VK_A,#VK_A+32
SetGadgetText(0,"")
ProcedureReturn 0
EndSelect
EndIf
ProcedureReturn CallWindowProc_(OldProc, hwnd, msg, wParam, lParam)
EndProcedure
OpenWindow(0, 100, 100, 120, 50, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
StringGadget(0, 8, 10, 100, 20, "", #PB_String_UpperCase)
SetCallbackEx(GadgetID(0), @Callback())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow