OptionGadget - Textcolor

Anfängerfragen zum Programmieren mit PureBasic.
IronEagle
Beiträge: 64
Registriert: 13.10.2012 14:41
Wohnort: Berlin

OptionGadget - Textcolor

Beitrag 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
PureBasic 5.71 | Windows 10 Home (x64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: OptionGadget - Textcolor

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
IronEagle
Beiträge: 64
Registriert: 13.10.2012 14:41
Wohnort: Berlin

Re: OptionGadget - Textcolor

Beitrag von IronEagle »

Vielen vielen Dank :)

Ich wäre darauf wohl nie gekommen :D
PureBasic 5.71 | Windows 10 Home (x64)
Antworten