2008-10-10 34 views
2

我正在使用CListCtrl控件在我的MFC应用程序中显示信息。此刻,我在SetExtendedStyle中设置了LVS_EX_CHECKBOXES,因此控件中的所有行都有一个复选框。然而,我想要的只是控件中的某些行有复选框。这可能吗 ?如果这是如何完成的?只需要CListCtrl控件中的某些行具有复选框

感谢

伊恩

回答

6

对于那些不应该有一个复选框每个项目:

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

要“创造”的复选框中的项目:

SetCheck(Item, true/false); 
+2

快速Q - 点击空间,该复选框会让人出现,是我还是ClistCtrl的功能? – gbjbaanb 2008-12-03 16:53:42

0

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

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

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

相关问题