ListControl horizontal anordnen mit Icons
-
Azubi11 schrieb:
|-------|-------|-------|
| X.........Y.........Z....|
|-------|-------|-------| (horizontal)Versuche mal folgendes:
ListView_SetView(hWndListView, LV_VIEW_ICON); ListView_SetExtendedListViewStyleEx(hWndListView, LVS_EX_SINGLEROW, LVS_EX_SINGLEROW);
-
Zumindest bei mir gibt es LVS_EX_SINGLEROW nicht unter Visual Studio 2003.
Kann man diesen Style dennoch setzen?
-
#define LVS_EX_SINGLEROW 0x00040000Wird aber erst ab Windows XP unterstützt. Der Explorer verwendet diesen Stil für die Filmstreifen-Ansicht.
-
Hi sri,
auch nach
l_control.SetExtendedStyle(LVS_EX_SINGLEROW);bleibt leider die Auswahl nur von oben nach unten

Links nach rechts scheint wohl nicht ohne weiteres möglich zu sein.
-
Beim Setzen des erweiterten Stils mit SetExtentedStyle muss der gesamte erweiterte Stil angegeben werden, also so:
l_control.SetExtendedStyle(l_control.GetExtendedStyle() | LVS_EX_SINGLEROW);Hast Du mal meine beiden Zeilen ausprobiert? Vorraussetzung ist auch ein Manifest für ComCtl32 v6, da beides erst ab Windows XP funktioniert.
-
Hallo sri,
es hat damit leider keine Änderungen gegeben

-
Schade, bei mir funktioniert es so wie von Dir gewünscht.

-
?? Dann mache ich irgendwas falsch in meinem Projekt!
Hast du die Möglichkeit ein Testprojekt online zu stellen,
damit ich es mal mit meinem Code vergleichen kann?Thx
Azubi11
-
Ich habe mit VS 2008 eine Beispielanwendung erstellt (Doc/View mit CListView) und bei CSingleRowView::OnInitialUpdate folgende Zeilen eingefügt:
TCHAR szSystemDir[MAX_PATH]; GetSystemDirectory(szSystemDir, _countof(szSystemDir)); SHFILEINFO sfi = { 0 }; HIMAGELIST hImageList = reinterpret_cast<HIMAGELIST>(SHGetFileInfo(szSystemDir, 0, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON)); ListView_SetImageList(GetListCtrl(), hImageList, LVSIL_NORMAL); ListView_SetView(GetListCtrl(), LV_VIEW_ICON); ListView_SetExtendedListViewStyleEx(GetListCtrl(), LVS_EX_SINGLEROW, LVS_EX_SINGLEROW); for (int iCount = 0; iCount < 20; iCount++) { CString strName; strName.Format(_T("Item %ld"), iCount); GetListCtrl().InsertItem(iCount, strName, sfi.iIcon); }Download: http://rapidshare.de/files/39098645/SingleRow.zip.html
-
Juhu vielen Dank für dein Beispiel. Jetzt hat es "geschnackelt" und ich
habe es hinbekommen
