Seite 1 von 1

OptionGadget - Textcolor

Verfasst: 10.01.2015 13:55
von IronEagle
Hallo Leute,

ich versuche leider vergeblich folgenden Code zum laufen zu bringen um die Hintergrundfarbe und die Textfarbe von einem OptionGadget zu ändern.
Die Hintergrundfarbe funktioniert bereits, aber ich bekomme die Textfarbe nicht zum laufen.

Vielleicht habe ihr eine Idee wo der Fehler liegt.

Code: Alles auswählen

EnableExplicit

Enumeration
  
  #Option1
  
EndEnumeration

Global color = CreateSolidBrush_(RGB(255,255,255))

Procedure myCallback(hWnd, uMsg, wParam, lParam)
 
  Select uMsg
      
    Case #WM_CTLCOLORSTATIC

      Select lParam
          
        Case GadgetID(#Option1)
          
          SetBkMode_(wParam,#TRANSPARENT)
          SetTextColor_(wParam, RGB(255,0,0))
          
          ProcedureReturn color
          
      EndSelect  
      
  EndSelect
 
  ProcedureReturn #PB_ProcessPureBasicEvents
  
EndProcedure

If OpenWindow(0,0,0,200,200,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  OptionGadget(#Option1,10,10,100,20,"OptionGadget")
   
   SetWindowCallback(@myCallback())
   
   Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
   DeleteObject_(color)
   
EndIf

Re: OptionGadget - Textcolor

Verfasst: 10.01.2015 14:15
von RSBasic
Es funktioniert nur, wenn das Gadgetdesign deaktiviert bzw. auf Klassik gesetzt wird:

Code: Alles auswählen

EnableExplicit

Enumeration
  
  #Option1
  
EndEnumeration

Global color = CreateSolidBrush_(RGB(255,255,255))

Procedure myCallback(hWnd, uMsg, wParam, lParam)
  
  Select uMsg
      
    Case #WM_CTLCOLORSTATIC
      
      Select lParam
          
        Case GadgetID(#Option1)
          
          SetBkMode_(wParam,#TRANSPARENT)
          SetTextColor_(wParam, RGB(255,0,0))
          
          ProcedureReturn color
          
      EndSelect 
      
  EndSelect
  
  ProcedureReturn #PB_ProcessPureBasicEvents
  
EndProcedure

If OpenWindow(0,0,0,200,200,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  OptionGadget(#Option1,10,10,100,20,"OptionGadget")
  SetWindowTheme_(GadgetID(#Option1), @"", @"")
  
  SetWindowCallback(@myCallback())
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  DeleteObject_(color)
  
EndIf
Dann hast du auch eine andere Schriftfarbe in deinem OptionGadget.

Re: OptionGadget - Textcolor

Verfasst: 10.01.2015 15:11
von IronEagle
Vielen vielen Dank :)

Ich wäre darauf wohl nie gekommen :D