Seite 1 von 4

Toolbar

Verfasst: 16.10.2007 15:18
von Thomas
Kann man auch größere Toolbarsymbole darstellen?
z.B. 24x24-Pixel-Große Grafiken statt immer nur den kleinen 16x16-Pixel-Grafiken?

Verfasst: 16.10.2007 15:29
von bobobo
Lambert von Lüttich weiß darüber bescheid :mrgreen:


tut mir leid 8) ich konnte nicht widerstehen

Verfasst: 16.10.2007 15:40
von Fluid Byte

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"void",$CC0001)

hwndToolbar = CreateToolBar(0,WindowID(0))

For i=0 To 5 : ToolBarStandardButton(i,i) : Next

SendMessage_(hwndToolbar,#TB_SETBUTTONSIZE,0,32 | 32 << 16)
SendMessage_(hwndToolbar,#TB_AUTOSIZE,0,0)

While WaitWindowEvent() ! 16 : Wend
Lambert von Lüttich? Ist das der hier?

http://de.wikipedia.org/wiki/Lambert_von_L%C3%BCttich


---------
genau der . siehe auch hier
bobobo

Verfasst: 16.10.2007 16:40
von Thomas
Fluid Byte hat geschrieben:

Code: Alles auswählen

SendMessage_(hwndToolbar,#TB_SETBUTTONSIZE,0,32 | 32 << 16)
SendMessage_(hwndToolbar,#TB_AUTOSIZE,0,0)
Was machen diese Beiden Befehle genau?
Was bedeutet dieses "<< 16"?

Verfasst: 16.10.2007 17:05
von #NULL
..verschiebt die bits von der zahl links um soviele stellen wie die zahl rechts

Code: Alles auswählen

For i=0 To 8
  Debug RSet(Bin( %11 << i ), 16, "0")
Next

Verfasst: 16.10.2007 17:31
von Fluid Byte
Die Nachricht #TB_SETBUTTONSIZE erwartet einen zusammengesetzten LONG (32-Bit) Wert bestehend aus zwei WORD Werten (16-Bit). Das heißt Breite und Höhe dürfen maximal 32767 betragen. Wie #Null schon sagte funktioniert das Erstellen und Lesen nicht mit einer simplen Addition sondern muss um die Größe eines WORD Wertes (16-Bit) verschoben werden. Beim Erstellen nach links (<< 16) beim Lesen nach rechts (>> 16).

Das geht natürlich auch mit einem WORD bestehend aus zwei BYTE Werten:

Erstellen:

Code: Alles auswählen

wParam = Wert1.b | Wert2.b << 8
Auslesen:

Code: Alles auswählen

Wert1.b = wParam & $FF
Wert2.b = wParam >> 8
Die Nachricht #TB_AUTOSIZE aktualisiert die Größe des Toolbar Fensters und der Buttons.

Verfasst: 16.10.2007 19:37
von Thomas
Gibts für SendMessage_(...) auch ne andere Hilfe außer die Win32?
(evt. auf deutsch?)

Verfasst: 16.10.2007 20:21
von Fluid Byte
Thomas hat geschrieben:Gibts für SendMessage_(...) auch ne andere Hilfe außer die Win32?
(evt. auf deutsch?)
Nope.

Verfasst: 16.10.2007 21:33
von Thomas
Fluid Byte hat geschrieben:

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"void",$CC0001)

hwndToolbar = CreateToolBar(0,WindowID(0))

For i=0 To 5 : ToolBarStandardButton(i,i) : Next

SendMessage_(hwndToolbar,#TB_SETBUTTONSIZE,0,32 | 32 << 16)
SendMessage_(hwndToolbar,#TB_AUTOSIZE,0,0)

While WaitWindowEvent() ! 16 : Wend
Das klappt ja ganz gut :allright: , aber wenn ich ein 32x32-Bitmap oder Icon mittels ToolBarImageButton(...) einfügen will ist das Bild trotzdem 16x16-Pixel! :|
Wie kann man machen, dass auch das 32x32 dargestellt wird?
(oder habe ich mich auf die schnelle einfach nur vertippt?)

Verfasst: 16.10.2007 21:57
von Fluid Byte
Dann muss du auch zusätzlich die Bildgröße mit #TB_SETBITMAPSIZE änder. Breite und Höhe wider mit der selben Methode angeben.