Abmessungen eines CListCtrl-Items die es haben würde
-
Hallo zusammen!
Wie bekomme ich von einem Item eines CListCtrls die Abmessungen, die es brauchen
würde um ohne "..." dargestellt zu werden?
Ziel ist es den Dialog in dem sich die Liste befindet an die Größe der Liste anzupassen um alle Einträge der Liste ohne "..." darzustellen.Kann mir jemand einen Tipp geben wo ich ansetzen kann?
Danke
Markus
-
CListCtrl::GetStringWidth passt aber oft nicht um ein paar Pixel.
-
Danke für den Tipp.
-
DC vom CTRL holen und dann:
pDC->GetTextExtent(hier den Text als CString mitgeben);
Rückgabewert ist die Breite des Textes in Pixeln.
-
Dann musst Du Dir aber auhc noch den Font holen...
Diese Funktion ist um einiges einfacher.
-
Beide Vorschläge haben allerdings das Problem, dass Icons in der Liste und die Abstände zwischen den Spalten nicht berücksichtigt werden. Ich hab das jetzt so gelöst, dass ich nach dem Füllen der Liste
SetColumnWidth(i, LVSCW_AUTOSIZE);
aufrufe und mir dann über
GetItemRect(i, &itemRect, LVIR_BOUNDS);
die tatsächliche Größe hole. So kann ich die Liste und den Dialog anpassen. Trotzdem danke für eure Tipps!