Ich verwende in einem XbpTreeview Icons. Die werden aber leider wegen der Zeilenhöhe zusammengestaucht. Mein Icon beinhaltet die Größen 16, 24, 32, ... Pixel, ist also in mehreren Größen vorhanden. Dummerweise macht Xbase++ ja immer seine eigene Größe aus Icons, ist auch bei XbpBrowse so. Dort lässt sich die Zeilenhöhe aber leicht anpassen.
Kann mir jemand sagen, wie ich die Zeilenhöhe von XbpTreeViewItem verändern kann?
Danke
Sebastian
Treeview Zeilenhöhe
Moderator: Moderatoren
- klammerauf
- UDF-Programmierer
- Beiträge: 69
- Registriert: Do, 08. Feb 2007 14:16
- Wohnort: Karlsruhe
- Hat sich bedankt: 3 Mal
Treeview Zeilenhöhe
- Dateianhänge
-
- treeview.png (4.04 KiB) 3772 mal betrachtet
Exzessiver Codeblock Programmierer
--
Grüße
Sebastian
--
Grüße
Sebastian
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Re: Treeview Zeilenhöhe
Hallo Sebastian,
probier's mal hiermit:
Möglicherweise ist nach TreeView_SetItemHeight() ein :invalidateRect() nötig; da bin ich mir im Moment nicht ganz sicher.
Gruß,
Günter
probier's mal hiermit:
Code: Alles auswählen
#define TV_FIRST 0x1100
#define TVM_SETITEMHEIGHT (TV_FIRST + 27)
#define TVM_GETITEMHEIGHT (TV_FIRST + 28)
FUNCTION TreeView_GetItemHeight( oTreeView )
RETURN SendMessageA( oTreeView:getHWND(), TVM_GETITEMHEIGHT, 0, 0)
// nHeight muss im Normalfall eine gerade Zahl sein.
FUNCTION TreeView_SetItemHeight( oTreeView, nHeight )
RETURN SendMessageA( oTreeView:getHWND(), TVM_SETITEMHEIGHT, nHeight, 0)
DLLFUNCTION SendMessageA( hWnd, msg, wParam, lParam ) USING STDCALL FROM USER32.DLL
Gruß,
Günter
- klammerauf
- UDF-Programmierer
- Beiträge: 69
- Registriert: Do, 08. Feb 2007 14:16
- Wohnort: Karlsruhe
- Hat sich bedankt: 3 Mal
Re: Treeview Zeilenhöhe
Danke Günter,
das hat genau das bewirkt, nach dem ich gefragt hatte. Leider hatte es keine Auswirkungen auf das Icon. Sieht immer noch hässlich aus. Siehe Anhänge. Ich vermute, das hängt damit zusammen, dass Xbase++ das Icon intern von TrueColor + Alpha nach TrueColor oder vielleicht sogar nur 256 Color umwandelt.
Ein :invalidateRect() war übrigens nicht notwendig.
Allerdings finde ich die gesamt Art und Weise, wie hier ein Xbase-Part manipuliert wird, interessant. Glaubst du, damit könnte man z.B. auch ein Static oder ein PushButton beeinflussen?
Sebastian
das hat genau das bewirkt, nach dem ich gefragt hatte. Leider hatte es keine Auswirkungen auf das Icon. Sieht immer noch hässlich aus. Siehe Anhänge. Ich vermute, das hängt damit zusammen, dass Xbase++ das Icon intern von TrueColor + Alpha nach TrueColor oder vielleicht sogar nur 256 Color umwandelt.
Ein :invalidateRect() war übrigens nicht notwendig.
Allerdings finde ich die gesamt Art und Weise, wie hier ein Xbase-Part manipuliert wird, interessant. Glaubst du, damit könnte man z.B. auch ein Static oder ein PushButton beeinflussen?
Sebastian
Exzessiver Codeblock Programmierer
--
Grüße
Sebastian
--
Grüße
Sebastian
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Treeview Zeilenhöhe
Das Treeview ist ja ein activeX und nutzt MsComCtl.OCX.klammerauf hat geschrieben:Leider hatte es keine Auswirkungen auf das Icon. Sieht immer noch hässlich aus. Siehe Anhänge.
Die Icons werde in der Imagelist, von MsComCtl.OCX, aufgenommen.
Den Source findest du unter C:\ALASKA\XPPW32\Source\SYS\xbparts.prg
Die Imageliste wird auch überall sonst bei MsComCtl.OCX verwendet, also z.b. im Listview.
Im Listview gibt es nun 2x Imagelist(): SmallIcon und Icon deren Grösse man "einstellen" kann.
Code: Alles auswählen
::oImage := ImageList():Create()
::oImage:ImageHeight := 16
::oImage:ImageWidth := 16
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Re: Treeview Zeilenhöhe
Hallo Sebastian,
Gruß,
Günter
bei Pushbuttons und einigen anderen XBPs, mindestens SLE und MLE, Checkbox, Radiobutton und 3State, Combobox und Listbox, ScrollBar und natürlich Treeview, kann man das -- selbstverständlich unter der Annahme, dass Alaska bei denen auch weiterhin direkt auf Windows-Standardcontrols zurückgreift und sie nicht selbst implementiertGlaubst du, damit könnte man z.B. auch ein Static oder ein PushButton beeinflussen?
Gruß,
Günter