wenn sie aktiviert sind. Funktioniert bei mir mit XP Style angeschalten
allerdings nicht immer (ohne XP Style dagegen immer).
Code: Alles auswählen
Procedure myButtonProc(hWnd,msg,wParam,lParam)
gadget = GetWindowLong_(hWnd,#GWL_ID)
Select msg
Case #WM_KILLFOCUS
style = GetWindowLong_(hWnd,#GWL_STYLE)
SetWindowLong_(hWnd,#GWL_STYLE,~#BS_DEFPUSHBUTTON & style)
InvalidateRect_(hWnd,0,1)
ProcedureReturn 0
Case #WM_SETFOCUS
style = GetWindowLong_(hWnd,#GWL_STYLE)
SetWindowLong_(hWnd,#GWL_STYLE,style|#BS_DEFPUSHBUTTON)
InvalidateRect_(hWnd,0,1)
ProcedureReturn 0
EndSelect
ProcedureReturn CallWindowProc_(GetGadgetData(gadget),hWnd,msg,wParam,lParam)
EndProcedure
Procedure myButtonGadget(nr,x,y,w,h,text$,flags=0)
gadget = ButtonGadget(nr,x,y,w,h,text$,flags)
If nr<>#PB_Any
gadget=nr
EndIf
old = SetWindowLongPtr_(GadgetID(gadget),#GWLP_WNDPROC,@myButtonProc())
SetGadgetData(gadget,old)
ProcedureReturn gadget
EndProcedure
If OpenWindow(0, 0, 0, 550, 200, "ButtonGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(0, 8, 10, 306, 20, "Normal StringGadget...")
StringGadget(1, 8, 35, 306, 20, "1234567", #PB_String_Numeric)
StringGadget(2, 8, 60, 306, 20, "Readonly StringGadget", #PB_String_ReadOnly)
StringGadget(3, 8, 85, 306, 20, "lowercase...", #PB_String_LowerCase)
StringGadget(4, 8, 110, 306, 20, "uppercase...", #PB_String_UpperCase)
StringGadget(5, 8, 140, 306, 20, "Borderless StringGadget", #PB_String_BorderLess)
StringGadget(6, 8, 170, 306, 20, "Password", #PB_String_Password)
myButtonGadget(7, 330, 10, 200, 20, "Standard Button")
myButtonGadget(8, 330, 40, 200, 20, "Left Button", #PB_Button_Left)
myButtonGadget(9, 330, 70, 200, 20, "Right Button", #PB_Button_Right)
myButtonGadget(10,330,100, 200, 60, "Multiline Button (longer text gets automatically wrapped)", #PB_Button_MultiLine)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventType() = #PB_EventType_Focus
If GadgetType(EventGadget())=#PB_GadgetType_String
SendMessage_(GadgetID(EventGadget()),#EM_SETSEL,0,-1)
EndIf
EndIf
EndSelect
ForEver
EndIf