关于ListView控件的使用
最近在做组长分配的一个项目,需要用到ListView控件的一些高级用法,上网找了这方面的资料,也没有适合的,所以来问问大家一下,希望可以得到大家们的帮助,我把问题描述一下:我为ListView控件添加了复选框,我现在想要点击某一行时,如果该行上的数据满足某个条件时,就把该行上的复选框选中,否则不选中,
并且当我点击某行时不让该行被加亮,只有复选框选中与不选中之分!
希望大家可以帮忙一下啊!感激不尽啊!
BOOL Main_OnNotify(HWND hDlg, int id, LPNMHDR pnm) { switch(id) { case IDC_LIST: HWND hListView = GetDlgItem(hDlg, id); switch(pnm->code) { case NM_CLICK: case NM_DBLCLK: case NM_RCLICK: POINT point; GetCursorPos(&point); //获取当前鼠标的位置坐标,注意GetCursorPos获取的是相对于屏幕坐标,还需要使用ScreenToClient函数将其转换为客户区坐标 ScreenToClient(hListView, &point); LVHITTESTINFO lvinfo; lvinfo.pt = point; lvinfo.flags = LVHT_ABOVE; ListView_HitTest(hListView, &lvinfo); if(LVHT_ONITEMSTATEICON == lvinfo.flags) //如果点击在复选框上 { if() //判断条件 ListView_SetItemState(hListView, lvinfo.iItem, 0, LVIS_STATEIMAGEMASK); //不满足条件,则复选框不被选中 } break; } break; } return FALSE; }