2

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

谢谢

伊恩

4

2 回答 2

7

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

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

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

SetCheck(Item, true/false);
于 2008-10-10T10:23:04.540 回答
0

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

或者,您可以进行一些所有者绘图并调用 DrawFrameControl 函数。

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

于 2008-10-10T10:03:05.300 回答