Ana sayfa > Programlama > Windows API Programlama > WinAPI ipuçları > winapi_ipuc00010

Windows API ipuçları

LVS_EX_CHECKBOXES özelliği ile tanımlanmış bir ListView kontrolünde, bir satırın işaretlendiğini veya işaretin kaldırıldığını belirleme

Aşağıdaki kodları ListView kontrolünün içinde tanımlandığı pencerenin fonksiyonu içinde kullanarak, bir ListView kontrolünün bir satırının işaretlendiğini veya işaretinin kaldırıldığını belirleyebiliriz.


case WM_NOTIFY:
{
     switch (((LPNMHDR)lParam)->code) {

		 case LVN_ITEMCHANGED: // Item değişiklik bildirim mesajı
		 {
			   LPNMLISTVIEW pnmlv = (LPNMLISTVIEW) lParam; // Item ve SubItem ile değişen özellik bilgilerini içerir. 
			   char cdizi[50];

			   if(pnmlv->uChanged & LVIF_STATE) { // item durumu değişti.
				  switch(pnmlv->uNewState & LVIS_STATEIMAGEMASK) {
					 case INDEXTOSTATEIMAGEMASK(2):
						  sprintf(cdizi, "Item %d işaretlendi!", pnmlv->iItem);
						  MessageBox(NULL, cdizi, "Item mesajı", MB_OK);
						  break;
					 case INDEXTOSTATEIMAGEMASK(1):
						  sprintf(cdizi, "Item %d işareti kaldırıldı!", pnmlv->iItem);
						  MessageBox(NULL, cdizi, "Item mesajı", MB_OK);
						  break;
				  }
			   }
		 }
		 break;
	 }
}