listview中checkbox的问题,求助(SDK)

fdsdfdsf 2011-06-18 01:30:59
1、listview中如何检查行是否被check?
2、listview中是否有类似LB_SETITEMDATA,可以为每行设置一个32位值的消息?
坐等高人
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyotrue 2011-06-19
  • 打赏
  • 举报
回复
SDK?用MFC不?

1、
如果用CListCtrl,可以用GetCheck
如果是只用WindowsAPI,Send LVM_GETITEMSTATE消息,获取LVIS_STATEIMAGEMASK状态,在返回值中
SendMessage(hWnd, LVM_GETITEMSTATE, (WPARAM)nIndex, (LPARAM)LVIS_STATEIMAGEMASK));
返回值:
BST_UNCHECKED
BST_CHECKED
BST_INDETERMINATE

2、
用CListCtrl很简单,SetItemData就行了
API的话,Send LVM_SETITEM消息可以设置,LVITEM结构中的lParam参数是你随便用的,如果是更改的话要先Send LVM_GETITEM消息获取当前信息,在此基础上修改
fdsdfdsf 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 schlafenhamster 的回复:]
1:
ListView_GetCheckState
BOOL ListView_GetCheckState(
HWND hwndLV,
UINT iIndex
);

Determines if an item in a list view control is selected. This should be used only for list view cont……
[/Quote]
能否详解一下Owner Data的用法呢?
schlafenhamster 2011-06-18
  • 打赏
  • 举报
回复
1:
ListView_GetCheckState
BOOL ListView_GetCheckState(
HWND hwndLV,
UINT iIndex
);

Determines if an item in a list view control is selected. This should be used only for list view controls that have the LVS_EX_CHECKBOXES style.
2:试试能不能用虚拟的,即“Owner Data”
zwfgdlc 2011-06-18
  • 打赏
  • 举报
回复
1. ListView_GetCheckState(HWND hwndLV,UINT iIndex);
2.不清楚,待楼下补充.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧