Seite 1 von 1

Checkbox Kästchengröße

Verfasst: 22.07.2013 14:37
von LuZiF3R
Hallo,

ich wollte wissen ob es irgendwie möglich ist, das Kästchen einer Checkbox zu vergrößern.
Bisher konnte ich nix finden, weder hier als auch im englischen Forum.

mfG LuZiF3R

Re: Checkbox Kästchengröße

Verfasst: 22.07.2013 15:48
von RSBasic
Ich wüsste leider nicht, wie man sowas machen kann. Vielleicht gibt es eine Möglichkeit, ein Gadget zu skalieren, aber ansonsten keine Ahnung.
Am besten nutzt du CanvasGadget und entwickelst deine eigene CheckBox, die du vergrößern kannst.

Re: Checkbox Kästchengröße

Verfasst: 23.07.2013 00:59
von LuZiF3R
wird wohl das "einfachste" sein ^^, trotzdem danke

Re: Checkbox Kästchengröße

Verfasst: 23.07.2013 16:41
von edel
Recht knapp, nur fuer Windows und ohne Theme.

Code: Alles auswählen

Procedure OwnCheckBoxDraw(gadget, state)
  Protected rc.rect
  
  SetRect_(@rc, 0, 0, GadgetWidth(gadget), GadgetHeight(gadget))
  
  hdc = StartDrawing(CanvasOutput(gadget))  
  
  If state
    DrawFrameControl_(hdc, @rc, #DFC_BUTTON, #DFCS_BUTTONCHECK | #DFCS_CHECKED)
  Else
    DrawFrameControl_(hdc, @rc, #DFC_BUTTON, #DFCS_BUTTONCHECK)
  EndIf
  
  StopDrawing()
  
EndProcedure

Procedure OwnCheckBoxClick()
  
  Protected gadget 
  Protected state
  Protected hdc

  gadget = EventGadget()
  state = GetGadgetData(gadget)
  
  state ! 1
  
  OwnCheckBoxDraw(gadget, state)  
  
  SetGadgetData(gadget, state)
  
EndProcedure

Procedure OwnCheckBox(id, x, y, cx, cy, flag = 0)
  
  Protected gadget 
  Protected hdc 
  
  gadget = CanvasGadget(id, x, y, cx, cy, flag)  
  
  If Not id = #PB_Any
    gadget = id
  EndIf
  
  BindGadgetEvent(gadget, @OwnCheckBoxClick(), #PB_EventType_LeftClick)
  
  OwnCheckBoxDraw(gadget, 0)
  
EndProcedure

Procedure Main()
  
  Protected Window
  Protected Event
  
  OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 70, 250, "Test")
  
  OwnCheckBox(#PB_Any, 10, 10, 40, 40)
  OwnCheckBox(#PB_Any, 10, 60, 40, 40)
  OwnCheckBox(#PB_Any, 10, 110, 40, 40)
  OwnCheckBox(#PB_Any, 10, 160, 40, 40)
  
  Repeat
    event = WaitWindowEvent()
  Until event = #PB_Event_CloseWindow
  
EndProcedure:Main()