Hallo,
danke für Eure Antworten!
@Rolf:
Nein, ich erhalte einen numerischen System-Farbwert zurück (siehe Code unten), der nicht identisch ist mit dem Xbase++-Farbwert.
@Jimmy:
Genau: Ich brauche die Hintergrund-Systemfarbe des Menüs, aber die Konstante XBPSYSCLR_MENU nützt mir nichts,
da sie sich nicht in ein RGB-Array { nR, nG, nB } umwandeln lässt.
@Tom:
JAAA, das ist die Lösung: AutomationTranslateColor(). --- DANKE!
Die Funktion war mir bislang unbekannt.
Und so funktioniert's:
- Code: Alles auswählen
#define COLOR_MENU 4
DLLFUNCTION GetSysColor( nIndex ) USING STDCALL FROM "USER32.DLL"
? nSysColor := GetSysColor( COLOR_MENU ) // 15790320
? nColor := AutomationTranslateColor( nSysColor, .T. ) // 32567536
? GraGetRGBIntensity( nColor ) // { 240, 240, 240 }