只需要CListCtrl控件中的某些行来设置复选框

时间:2008-10-10 09:53:05

标签: mfc

我正在使用CListCtrl控件在我的MFC应用程序中显示信息。目前我在SetExtendedStyle中设置了LVS_EX_CHECKBOXES,因此控件中的所有行旁边都有一个复选框。但我想要的是,只有控件中的某些行具有复选框。这可能吗 ?如果这是怎么做的?

由于

伊恩

2 个答案:

答案 0 :(得分:6)

对于每个不应该有复选框的项目:

LVITEM lvi;
lvi.stateMask = LVIS_STATEIMAGEMASK;
lvi.state = INDEXTOSTATEIMAGEMASK(0);
::SendMessage(m_hWnd, LVM_SETITEMSTATE, nItem, (LPARAM)&lvi);

要“创建”项目的复选框:

SetCheck(Item, true/false);

答案 1 :(得分:0)

是的。您需要做的是创建复选框的位图,并将其包含在回调中。您的一个位图将为空白。

或者,你可以做一些所有者绘图并调用DrawFrameControl函数。

您还可以添加代码来测试鼠标点击并做出相应的响应。