| |
|
|
Pedro Santos | Hallo
Ist es möglich ein Transparenten Toolbar mit xprofan toolbar funktion zur erzeugen? In mein programm habe ich ein bmp mit den buttons die ich in der toolbar benutze doch je nachdem desktop theme der in rechner ist ändert sich auch die hintergrundsfarbe von den buttons in der Toolbar.
screenshoots von den unschönen Efekt
Gruss
Pedro |
|
|
| |
|
|
|
| Nun Du könntest Dir damit helfen das Du per Getsyscolor den Farbwert ermittelst - und im Backgroundimage startpaint mcls Deine Toolbilder mit loadbmp ,0,0;-1 auf die Farbe transparent lädst - erneut speicherst - und das gespeicherte Bild nutzt.
Salve. |
|
|
| |
|
|
|
Peter Max Müller | Hallo, Vielleicht hilft es wenn Du zwei Toolbar Bitmaps erstellst.Eine für Klassische Window Varianten und eine für XP.Also mit verschiedenen Grautönen.Dann überprüfst Du beim Start Deiner Anwendung unter welchem Betriebssystem sie läuft und ladest die passende Bitmap.
MfG |
|
|
| |
|
|
|
Frank Abbing | Nein Peter. Die Farbe ist ja frei einstellbar. iFs Vorschlag ist der gebräuchliche. Mit etwas API kann man den Umweg des Speicherns auch noch umgehen. |
|
|
| |
|
|
|
Peter Max Müller | Tach, Frage dazu: KompilierenMarkierenSeparieren-Begin-----------------------------------------------------------------
-Header Files--------------------------------------------------------
$H Windows.ph
-Global Variables----------------------------------------------------
Declare BackColor&, Red%, Green%, Blue%
-WindowBackground----------------------------------------------------
BackColor& = ~GetSysColor(~COLOR_3DFACE)
Red% = (BackColor& >> 16) & $FF
Green% = (BackColor& & $FFFF) >> 8
Blue% = (BackColor& & $FFFF) & $FF
Cls @RGB(Red%, Green%, Blue%)
WaitKey
-End-------------------------------------------------------------------
End
Dieser Code kommt aus der Profan Hilfe.Wenn ich das richtig verstanden habe soll er die Systemfarbe ermitteln und an Cls übergeben. Klappt auch.Bloß bei mir (Win 2000 / Windows Standard Schema) gibt es Unterschiede zwischen den ermittelten RGB Wert und meinem tatsächlichen. Stelle ich das Windows Schema auf Windows klassisch passt es. Ich habe nicht alle Schema getestet aber bei manchen passen die Werte und bei anderen bei weitem nicht. Liegt das vielleicht an (~COLOR_3DFACE)?
Vielleicht hat dazu jemand was im Köcher....
Gruß
P.P.M |
|
|
| |
|
|
|
Frank Abbing | Mach einfach:
CLS GetSysColor(15) |
|
|
| |
|
|
|
Peter Max Müller | Hi, Wie Du schon treffend erwähnt hast: Die Farbe ist frei wählbar.Also nützt mir das so auch nichts.
Und zwar deshalb: Ich habe ein Programm in dem ich folgende Zeile eingebaut habe: KompilierenMarkierenSeparierenstring string#,0 = "Test"
Zeige% = SKCtrl_CreateColorStatic(D%,string#,RGB(255,0,0),RGB(Red%,Green%,Blue%),085,098,18,19,%hInstance)
(RGB(Red%,Green%,Blue) stellt den Hintergrund des Statics ein.)
Da nun die Farben unter Windows geändert werden können und auch von Windowsversion zu Windowsversion abweichen dachte ich mir das ich mit dem Code meines vorherigen Postings die jeweilige Systemfarbe auslese und den RGB Wert der oben angezeigten Zeile übergebe.(Red%,Green,Blue%) Quasi eine Pseudo-Transparents.Sonst sieht man bei Farbwechseln immer den Hintergrund des Statics der nicht zu dem Fenster/Dialog passt. Und da liegt der Hase im Pfeffer.Wenn ich meine Systemfarben auslese habe ich andere RGB Werte als die tatsächlichen und somit passt das dann natürlich nicht. Aber bei manch anderen Farbeinstellungen klappt es dann wieder.
Es geht mir nicht um CLS.Das war vielleicht etwas verwirrend im vorherigen Posting. Sorry.
MfG P.P.M
Edit: Thema hat sich erledigt.Danke an alle.Gruß |
|
|
| |
|
|
|
Frank Abbing | SetTrueColor vergessen, was? |
|
|
| |
|
|
|
Peter Max Müller | Hallo, Nein.Soweit ich weiß setzt Profan ab Version 8 (XProfan8) standardmäßig SetTrueColor.Selbst wenn ,hätte mir das auch nicht geholfen.
Ich habe die Antwort nur extra knapp gehalten damit ich euch nicht weiter mit meinen geistigen Ergüssen nerve.
Jetzt trotzdem:
Ich oben genannten Beispiel (das aus der Profan Hilfe) habe ich nur folgende Zeilen geändert.
Orginal: KompilierenMarkierenSeparierenRed% = (BackColor& >> 16) & $FF
Green% = (BackColor& & $FFFF) >> 8
Blue% = (BackColor& & $FFFF) & $FF
Geändert in: KompilierenMarkierenSeparierenRed% = (BackColor& & $FFFF) & $FF
Green% = (BackColor& & $FFFF) >> 8
Blue% = (BackColor& >> 16) & $FF
Also praktisch die Werte von Red% und Blue% getauscht. Keine Ahnung ob da ein Fehler in der Profan Hilfe steckt oder warum das sonst so ist.
Jedenfalls kann ich jetzt die richtige Systemfarbe auslesen,dem Static als Hintergrundfarbe zuweisen und der Anwender kann sein Farbschema einstellen wie er will.
Gruß P.P.M |
|
|
| |
|
|