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