Toolbar

Wohl das A & O in der Windows-Programmierung

Moderatoren: crack, Krüsty, Marwin

Toolbar

Beitragvon Rainer » Dienstag 30. Juni 2009, 11:37

Hallo,

ich habe eine Toolbar, funktioniert alles ganz normal. Diesmal muss ich jedoch Toolbarbuttons deaktivieren, mache ich mit

invoke SendMessage, hToolbar, TB_ENABLEBUTTON, id, flag

id = CmdId
flag = TRUE/FALSE

Das funktioniert auch, die Buttons sind grau und lassen sich nicht mehr schalten, aber die Bilder sehen unmöglich aus. Nun habe ich das Bitmap (24Bit) mit Gimp transparent gemacht, sieht in WinXP gut aus, aber in WinME (und vermutlich auch in den anderen VER_PLATFORM_WIN32_WINDOWS Betriebssystemen) kriege ich's einfach nicht hin, dass die graue Darstellung vernünftig aussieht. Ich habe dann für diese Betriebssysteme noch ein Toolbarbitmap mit 256 Indexfarben gemacht, und mit

local cm :COLORMAP
mov cm.From, 0
invoke GetSysColor, COLOR_MENU
mov cm.To, eax
invoke CreateMappedBitmap, hInstance, 40, 0, addr cm, 1
mov hBmpToolbar, eax

die Hintergrundfarbe auf COLOR_MENU gesetzt, den Fensterhintergrund auch. Damit sind die Buttons wenigstens auch transparent, aber wenn sie deaktiviert werden, ist die graue Darstellung genauso unmöglich.

Es muss gehen, ich arbeite mit dem RadAsm-Editor, da funktioniert das einwandfrei, habe mal nachgesehen, es wird dort ein 24Bit-Bitmap für die Toolbar eingesetzt.

Es wäre toll, wenn mir da jemand weiterhelfen könnte.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: Toolbar

Beitragvon crack » Dienstag 30. Juni 2009, 18:06

Ich verstehe die Problematik...

Idee: wie wäre es denn wenn Du den Button 'grayst', auch bei dem Image auf eine Monochrome Version umschaltest, die sollte dann doch so dargestellt werden wie Du sie erstellt hast...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Toolbar

Beitragvon Rainer » Dienstag 30. Juni 2009, 18:13

Hallo crack,

Danke für die Antwort.
Meinst Du zum farbigen Toolbarbitmap mit den Button-Images noch ein graues anfügen und dann mit

TB_CHANGEBITMAP

auf das graue umschalten? Dann wäre aber der Button noch wählbar. Ich habe schon an diese Möglichkeit gedacht, aber ideal wäre das nicht.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: Toolbar

Beitragvon crack » Dienstag 30. Juni 2009, 18:23

Oha, diesen Nebeneffekt habe ich nicht bedacht, bzw. nicht davon gewusst.
Die unelegante Option wäre Das Bitmap ändern / Verzögerungsschleife / dann Button disablen ...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Toolbar

Beitragvon Rainer » Dienstag 30. Juni 2009, 19:31

Hallo crack,

das geht leider auch nicht. Wenn Du gleich den Button mit dem grauen Bitmap zeichnest; in dem Moment, wenn Du disabled setzt, würde das graue Bitmap vom System nochmal grau gezeichnet werden. Da sieht man dann nur das als weiß, was im Bitmap weiß war, alles andere erscheint gleichmäßig grau, das ist das Problem. Ich habe deshalb den Verdacht, in der Toolbar reichen die Bitebenen nicht um mehr als zwei Farben zu zeichnen.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: Toolbar

Beitragvon crack » Dienstag 30. Juni 2009, 20:06

vll probierst Du mal das Bitmap mit 'Imageedit' (Teil des MASM Pakets) zu bearbeiten ...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Toolbar

Beitragvon Rainer » Dienstag 30. Juni 2009, 20:56

... das habe ich gerade probiert, aber das Teil nimmt keine Bitmaps mit mehr als 16 Farben, bei meinem und auch beim (zum testen extrahierten) Bitmap von RadAsm streikt das Tool, meint dazu, das sei kein gültiges Format 3.0 Bitmap. Was mich noch irritiert, wenn ich mir das Bitmap von RadAsm im Gimp ansehe, ist das nicht transparent, hat aber als Hintergrund-Farbe
0FF00FFh. Ich habe fast den Verdacht, da wird eine ImageList verwendet, da kann man ja den Mask-Parameter angeben. Ich habe aber noch nirgends gesehen, dass eine Toolbar mit einer ImageList verknüpft ist.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: Toolbar

Beitragvon Rainer » Dienstag 30. Juni 2009, 21:31

...inzwischen habe ich herausgefunden, dass Bitmaps mit 256 Indexfarben sowohl in WinXP als auch in WinME transparent dargestellt werden, zumindest wenn die Hintergrundfarbe schwarz ist. Es wird dann gleich dargestellt wenn die Buttons deaktiviert sind, was weiß war, bleibt weiß, alle anderen Farben werden zu grau.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: Toolbar

Beitragvon Rainer » Mittwoch 1. Juli 2009, 16:54

Hallo crack,

ich habe mal bei RadAsm nachgefragt, und KetilO hat mir freundlicherweise die Lösung gepostet:

invoke SendMessage, hToolbar, TB_SETIMAGELIST, 0, hImgListTBf
invoke SendMessage, hToolbar, TB_SETDISABLEDIMAGELIST, 0, hImgListTBg

Es wird eine ImgList mit farbigen(hImgListTBf) und eine mit grauen(hImgListTBg) Button-Images angelegt. Jetzt funktioniert das astrein.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Re: Toolbar

Beitragvon crack » Mittwoch 1. Juli 2009, 18:18

cool 8)
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf


Zurück zu Windows-API

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag
  • toolbar images
    von rag_dog » Mittwoch 30. Mai 2007, 19:24
    5 Antworten
    2267 Zugriffe
    Letzter Beitrag von rag_dog Neuester Beitrag
    Sonntag 10. Juni 2007, 18:02

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron