BG MVC Model View Controller eğitim serisi yayında...

Ana page > Programlama > Windows API Programlama > WinAPI ipuçları > winapi_ipuc00006

Windows API ipuçları

Bir ListView kontrolünde tıklanan satır ve sütun indeks değerini alma (LVS_EX_FULLROWSELECT özelliği ile)

Aşağıdaki kodları ListView kontrolünün içinde tanımlandığı pencerenin fonksiyonu içinde kullanarak, bir ListView kontrolünde tıklanan satır ve sütun indeks değerlerini alabiliriz.

Bu kodları kullanabilmek için, ListView kontrolünün LVS_EX_FULLROWSELECT özelliği ile oluşturulması gerekmektedir.


// ListView kontrolü oluşturma
hwndListView = CreateWindowEx(WS_EX_CLIENTEDGE , WC_LISTVIEW, "",
					  WS_CHILD | LVS_REPORT | WS_VISIBLE,
					  10, 10, 494, 185, hwnd,
					  (HMENU) IDC_LISTVIEW, NULL, NULL);
					  
ListView_SetExtendedListViewStyle(hwndListView, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);

.
.
.

case WM_NOTIFY:
{
     switch (((LPNMHDR)lParam)->code) {
	    case NM_CLICK:
	    {
		   if (((LPNMHDR)lParam)->hwndFrom == hwndListView) {
			   LPNMITEMACTIVATE lpnmia = (LPNMITEMACTIVATE)lParam;
			   char cdizi[60];

			   // ListView kontrolu LVS_EX_FULLROWSELECT özelliği ile tanımlandığında,
			   // NM_CLICK bildirim mesajında lpnmia->iItem ve lpnmia->iSubItem değerleri
			   // seçilen satır ve sütun indeks değerlerini verir.
               sprintf(cdizi, "Satır indeks değeri: %d, Sütun indeks değeri: %d", lpnmia->iItem, lpnmia->iSubItem);
               MessageBox(NULL, cdizi, "Satır ve sütun değerleri", MB_OK);
		   }
		}
}