CListCtrl Zeilenhöhe ändern
-
Hallo!
So weit es mir bekannt ist lässt sich die Zeilenhöhe bei einem CListCtrl nur ändern wenn man es "komplett" selber zeichnet. Also den Flag LVS_OWNERDRAWFIXED setzt und DrawItem überschreibt und alles selber zeichnet, da man sonst nicht an MeasureItem herankommt. Weiß jemand ob man dennoch die Zeilenhöhe anpassen kann ohne die Items selber zeichnen zu müssen?
-
Zitat von
http://www.codeproject.com/listctrl/changerowheight.aspChanging the height of a row without using LVS_OWNERDRAWFIXED
Problem/Solution:
You can easily change the row height by making the image list icon size to your desired size (and fool the user by drawing your icon not to the actual size). E.g.:imagelist.Create( 24, 24, ILC_COLOR4, 10, 10 );
m_cList.SetImageList( &imageList, LVSIL_SMALL );
If your icon has 16x16, you make your row height 50% bigger. This seems awkward, but it works with ease
-
Ja, das habe ich auch schon gelesen. Allerdings finde ich diese Lösung ähnlich elegant wie das Setzen einer größeren Schriftart um die Höhe eine CHeaderCtrl's anzupassen.
P.S.: Einige der Microsoft Controls sind der Art unflexibel. Das ist echt schade. Andererseits bindet es den Entwickler auch sehr eng an die GUI Guidelines was wiederum warscheinlich der größere Gewinn ist. Denn wenn man sich anschaut was es teilweise für grausame GUIs gibt...