Hintergrundfarbe XbpTabpage

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
ssemleit
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 123
Registriert: Di, 08. Mär 2016 11:32
Hat sich bedankt: 19 Mal
Danksagung erhalten: 8 Mal

Hintergrundfarbe XbpTabpage

Beitrag von ssemleit »

Hallo,

ich versuche verzweifelt den Farbwert der Hintergrundfarbe einer XbpTabpage korrekt zu ermitteln.
Diese Farbe brauch ich, um selbst etwas auf die TabPage zu pinseln.

Randbedingungen:
Windows 11
Visualstyles ist aktiv, also oTab:useVisualStyle = .T.
oTab:setColorBG() liefert -34 (XBPSYSCLR_DIALOGBACKGROUND)

GraGetRGBIntensity( TranslateSysColor( -34 ) ) liefert mir RGB( 240,240,240), #F0F0F0.
Das wäre die korrekte Farbe, wenn oTab:useVisualStyle = .F.
Korrekt wäre aber RGB( 249,249,249), #F9F9F9 (gemäß eines Colorpickers).

Ich habe schon alle XBPSYSCLR_* durchgeforste. Keine liefert mir den Wert RGB( 240,240,240), #F0F0F0.
Auch kein Farbe per GetSysColor(user32.dll) liefert mir diesen Farbwert.

Ungern würde ich den Farbewert fest in meinem Code hinterlegen.
Gruß
Stefan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Hintergrundfarbe XbpTabpage

Beitrag von AUGE_OHR »

hi Stefan,

versuche es mal mit

Code: Alles auswählen

DLLFUNCTION GetPixel( hdc, x, y ) USING STDCALL FROM GDI32.DLL
DLLFUNCTION GetWindowDC( hwnd ) USING STDCALL FROM USER32.DLL
DLLFUNCTION ReleaseDC( nHWND, nHDC ) USING STDCALL FROM USER32.DLL

   hWnd:= oTabpage:getHWND()
   hDC := GetWindowDC( hWnd )

   nColor := GetPixel(hDC, nX, nY) 
   
   ReleaseDC( hWnd, hDC )   
da 0,0 für "Transparency" genutzt wird würde ich 2.2 als Position nehmen

p.s. "Visual" Style muss abgeschaltet sein

Code: Alles auswählen

   oTabpage:useVisualStyle := .F.
gruss by OHR
Jimmy
Benutzeravatar
ssemleit
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 123
Registriert: Di, 08. Mär 2016 11:32
Hat sich bedankt: 19 Mal
Danksagung erhalten: 8 Mal

Re: Hintergrundfarbe XbpTabpage

Beitrag von ssemleit »

Hallo Jimmy,

danke für Deinen Verschlag.
Das kommt einem selbst gemachten Colorpicker gleich.
Da ich die Farbe bereits beim Erzeugen der Elemente benötige, also bevor die Page sichtbar ist, ist das für mich nicht praktikabel.
Wenn ich oTabpage:useVisualStyle auf .F. setze, dann könnte ich die Farbe der Page auch auf den gleichen festen Wert setzen
und hätte dadurch ein stimmiges Erscheinungsbild. Mal sehen.
Gruß
Stefan
Antworten