This is an old revision of the document!
=====Finding which items are selected in a List View===== //by Richard Russell, September 2010//\\ \\ A significant difference between a **List View** and a **List Box** is that the former allows you to select **multiple** items whereas the latter only allows you to select a **single** item. This complicates somewhat the issue of discovering which item(s) is/are selected.\\ \\ With a **List Box** you can simply send the **LB_GETCURSEL** message:\\ SYS "SendMessage", hListBox%, LB_GETCURSEL, 0, 0 TO sel% where **sel%** is set to the index of the current selection (or -1 if no item is selected).\\ \\ With a **List View** you can optionally discover how many items are selected as follows:\\ SYS "SendMessage", hListView%, LVM_GETSELECTEDCOUNT, 0, 0 TO nsel% where **nsel%** is set to the number of selected items.\\ \\ To find which item(s) is/are selected you can send the List View the **LVM_GETNEXTITEM** message:\\ iStart% = -1 SYS "SendMessage", hListView%, LVM_GETNEXTITEM, iStart%, LVNI_SELECTED TO index% where **index%** is set to the index of the first item selected (or to -1 if no items are selected).\\ \\ To discover which other items (if any) are selected send the message repeatedly with **iStart%** set to the index previously returned, until **index%** is -1:\\ iStart% = -1 REPEAT SYS "SendMessage", hListView%, LVM_GETNEXTITEM, iStart%, LVNI_SELECTED TO index% IF index% <> -1 THEN PROC_do_something(index%) iStart% = index% UNTIL index% = -1 Use the **Windows Constants** [[/Tools%20and%20Utilities|utility]] or **API Viewer** to discover the values of the constants.