Hintergrundfarbe vom Traybereich
-
Hallo,
wie kann man die Hintergrundfarbe vom Traybereich bekommen?
Bei Windows XP ist das ja leider nicht mehr clBtnFace, wenn man einen Skin anhat.Gibt es eine Möglichkeit die Farbe zu ermitteln?
Für jede Hilfe bin ich sehr Dankbar!!!
-
Tillmann David schrieb:
Gibt es eine Möglichkeit die Farbe zu ermitteln?
Ich denke mal nicht, zumal die Skins bzw. Themes dort ja auch Farbverläufe ermöglichen. Es sei denn, du machst einen "Screenshot" von dem ensprechenden Bereich und liest die Farbe(n) pixelweise aus.
Warum benutzt du nicht einfach ein Icon mit transparentem Hintergrund?
-
Danke für die schnelle antwort
Jansen schrieb:
Warum benutzt du nicht einfach ein Icon mit transparentem Hintergrund?
Ich kann dir mal erklären wo mein Problem liegt:
Ich benutze 32Bit Alpha Shadow Icons. Diese konventiere ich um zu einem Bitmap und zeichne ein anderes Bitmap ebenfalls darauf. Wenn ich danach aber das 32bit Icon wieder nach Icon umkonventieren will, macht bcb den schönen Alpha Shadow in der Farbe, die ich im Bitmap als Transparent vorgesehen habe.
Ich wollte die Farbe des Trays nehmen, da man dann den fehlerhaften Schatten nicht sieht.Jansen schrieb:
Es sei denn, du machst einen "Screenshot" von dem ensprechenden Bereich und liest die Farbe(n) pixelweise aus.
Super Idee!
Ich gehe jetzt mal nicht davon aus, das ein Farbverlauf bei 16 Pixeln auffallen wird.
-
So habe aus deiner Idee mal nen Code gemacht.
Wens interessiert:TCanvas* Canvas = new TCanvas(); TColor TrayColor; Canvas->Handle = GetWindowDC(0); TrayColor = Canvas->Pixels[Screen->Width-4][Screen->Height-4]; delete Canvas;
-
Und was wenn die Taskleiste auf der linken Seite positioniert ist? Also nicht auf der unteren Seite angedockt ist?
-
Gibt bestimmt 'ne API-Funktion oder einen Registryeintrag, mit der/dem sich Taskbarposition und -grösse ermitteln lassen.