Column zu einem Listview Window hinzufügen
-
also ich habe auch nur den 1. und den 3. header. Aber ich habe noch cw32mt.lib mitgelinkt, wobei die für etwas anderes bei mir gebraucht wird...
-
Wo finde ich denn diese Datei? In System32?
-
ne, die musst du irgendwo unter deinen Compiler-Einstellungen hinzufügen.
-
LukasBanana schrieb:
[...] jetzt mekkert der Compiler: "'ListView_GetSelectionMark' undeclared".
Das Makro "ListView_GetSelectionMark" steht nur zur Verfügung falls _WIN32_IE >= 0x0400 ist.
Probier mal ein "#define _WIN32_IE 0x0400" an der richtigen Stelle :// Auszug aus der COMMCTRL.H : ... #if (_WIN32_IE >= 0x0400) ... #define ListView_GetSelectionMark(hwnd, i) \ (int)SNDMSG((hwnd), LVM_SETSELECTIONMARK, 0, (LPARAM)i) ... #endif // _WIN32_IE >= 0x0400 ...
-
Sau cool, danke "merker" es hat tatsächlich funktioniert

auch die andere Funktion "ListView_SetExtendedListViewStyle" funktioniert jetztDanke an alle

-
Aber nanu?
bei der Funktion: "ListView_SetSelectionMark" wird immer -1 zurückgegeben weil das setzen der Position fehlschlägt ?!
-
Nope. -1 bedeutet, dass es davor keine Selektierung gab. Wenn es ein gegeben hätte, dann würde die als return-Wert kommen.
-
Ja schon klar, aber wie kann die die Selektierung selbst angeben "ListView_Set..."?!
-
LukasBanana schrieb:
Aber nanu?
bei der Funktion: "ListView_SetSelectionMark" wird immer -1 zurückgegeben weil das setzen der Position fehlschlägt ?!
das das klar ist, hat sich hier anders angehört
Ich verstehe diese Frage nicht.
-
Ich möchte das Gegenteil der Funktion ListView_GetSelectionMark, ich will nähmlich die Selektion piositionieren und nicht nur abfragen

-
ÄHH??
ListView_SetSelectionMark?
Oder über ListView_SetItem unter state ODS_SELECTED angeben...
-
Okay, daas könnte funktionieren aber ich muss wirklich sagen das die WinAPI manchmal ziehmlich umständlich und unschön ist, warum gibt es dafür nicht einfach die Gegenteilige Funktion.

Aber trotzdem Danke noch mal
PS: Obwohl es mich wundert das der Compiler die Funktion ListView_SetSelectionMark nicht angemeckert hat?!

-
Weil es das Makro gibt! Da brauch er ja auch nicht meckern, wenn das irgendwo definiert ist.
-
Ich hab das jetzt so da stehen, aber ich 'glaube' die Variable "stateMask" ist noch nicht richtig gesetzt ich weiß es aber nicht:
{ /* ... */ int SelectedItemNr = 5; LV_ITEM FAR ListViewItem; { ListViewItem.mask = LVIF_STATE; ListViewItem.iItem = SelectedItemNr; ListViewItem.state = LVIS_SELECTED; ListViewItem.stateMask = sizeof(LVIS_SELECTED); } ListView_SetItem(hListWnd, &ListViewItem); /* ... */ }
-
stateMask braucht nicht die Größe, sondern die Flags, welche Zustände gültig sind.
-
Also 'LVIS_SELECTED' z.B.?
-
Ich hab das noch nie versucht, aber ich vermute mal ja.