Seite 1 von 1
Focus bei CheckboxGadget anzeigen lassen (XP-Skin)
Verfasst: 13.06.2005 21:21
von Jake
Ich möchte das beim CheckboxGadget dieser gestrichelte Rahmen angezeigt wird. Wenn ich mit Tab zwischen den Boxen wechsel dann kann ich die auch mit Space auf 1 bzw. 0 setzen aber ich kann nicht sehen wo sich der Focus befindet.
Gibt es eine Möglichkeit das einzustellen, so das der Rahmen um den Text vom CheckboxGadget gezeichnet wird?
Verfasst: 14.06.2005 20:50
von Jake
Keiner eine Idee?
Kann mir dann evtl. jemand ein kleines Beispiel geben wie man mit WinAPI ein CheckboxGadget erstellt? Ich wühle gerade im PSDK aber bin daraus noch nicht schlau geworden.
Verfasst: 15.06.2005 11:23
von bobobo
Wenn ich ne Checkbox mit PB fabrizier hat die bei Erhalt des Fokus auch diesen Rahmen drumrum .. allerdings liegt der Rahmen um den zur Checkboxgehörigen Text !! Wenn der fehlt , fehlt auch der Rahmen.
Falls Du keinen Text hast kannst Du ja ein Frame3d_Gadget versteckt um die CheckBox drumrummalen und bei Erhalt des Fokus' hervorholen
Code: Alles auswählen
; PureBasic Visual Designer v3.92 build 1460
;- Window Constants
;
Enumeration
#Window_0
#Radio_0
#String_0
#Button_0
#Frame3D_0
#CheckBox_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
If CreateGadgetList(WindowID())
OptionGadget(#Radio_0, 120, 100, 100, 30, "Radio")
StringGadget(#String_0, 170, 50, 110, 30, "String")
ButtonGadget(#Button_0, 200, 180, 110, 30, "Knopf")
Frame3DGadget(#Frame3D_0, 280, 90, 170, 70 , "")
CheckBoxGadget(#CheckBox_0, 290, 100, 150, 50, "ich könnte auch leer sein")
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindowID() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadgetID() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
;FokusCheckRoutine
If GetFocus_() = GadgetID(#CheckBox_0)
HideGadget(#Frame3D_0,0)
Else
HideGadget(#Frame3D_0,1)
EndIf
If Event = #PB_EventGadget
HideGadget(#Frame3D_0,1)
If GadgetID = #Radio_0
ElseIf GadgetID = #String_0
ElseIf GadgetID = #Button_0
ElseIf GadgetID = #CheckBox_0
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Verfasst: 15.06.2005 18:29
von Jake
Wenn ich eine Checkbox erstelle hat die keinen Rahmen drum. Einen Text habe ich eingegeben. Ich habe nur einen Rahmel wenn ich die XP-Skin Unterstützung abschalte, das will ich aber nicht.
Man kann mit XP-Skin Unterstützung den Rahmen um den Text nicht sehen!
Verfasst: 15.06.2005 19:38
von bobobo
Dann mach das doch mit nem Frame3Dgadget wie oben im Code..
Sorry xp-styling kann ich nicht testen.. das XP-Styling ist immer das erste was ich ausmache auf nem Rechner mit XP drauf.
und nun hab ich Feierabend.