在 MFC(Microsoft Foundation Classes)的 CListCtrl 类中,没有直接提供 CListCtrl::SetCheck 方法。通常,列表控件中的项的检查状态(CheckBox)是通过设置 LVIF_STATE 标志位于 CListCtrl::SetItem 方法中实现的。

以下是一个示例,演示如何通过 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