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;
}
}