以下是一个示例,演示如何通过 SetItem 方法来设置列表控件中项的检查状态:
// 假设 pListCtrl 是你的 CListCtrl 对象指针
int nItemIndex = 0; // 要设置的项的索引
BOOL bChecked = TRUE; // 设置为 TRUE 表示选中,FALSE 表示未选中
LVITEM lvItem;
lvItem.mask = LVIF_STATE;
lvItem.iItem = nItemIndex;
lvItem.state = bChecked ? INDEXTOSTATEIMAGEMASK(2) : INDEXTOSTATEIMAGEMASK(1);
lvItem.stateMask = LVIS_STATEIMAGEMASK;
pListCtrl->SetItem(&lvItem);
在这个示例中,通过设置 LVITEM 结构的 state 和 stateMask 成员来控制项的检查状态。INDEXTOSTATEIMAGEMASK 宏用于生成合适的状态图像掩码,其中 1 表示未选中,2 表示选中。请注意,这仅适用于带有 LVS_EX_CHECKBOXES 扩展风格的列表控件。
如果你的应用中使用的是 MFC 的 CListCtrl 的派生类,可能也有更便捷的方法或封装,具体取决于你的代码结构。
转载请注明出处:http://www.zyzy.cn/article/detail/18551/MFC/CListCtrl