您好 我使用ClistCtrl有20个项目,我想限制所选的项目编号。 例如,只能选择10个项目。 我怎么能这样做? 谢谢你的帮助herzl。
答案 0 :(得分:1)
每次LVIS_SELECTED状态发生变化时,您必须处理LVN_ODSTATECHANGED通知消息并计算所选项目的数量
由于
答案 1 :(得分:1)
所以我写了这段代码。它应该工作。只需为列表
创建一个事件处理程序void CDatenbankView::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)
{
int SelctedItems;
SelctedItems = 0;
int Index;
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
for (Index = 0; Index < m_List.GetItemCount(); ) //Check every Item
{
if (m_List.GetItemState (Index, LVIS_SELECTED) == LVIS_SELECTED) //Checks if it is selected
{
if (SelctedItems > 10)
{
MessageBox (_T("Cant select more than 10 Items"));
for (Index = 0; Index < m_List.GetItemCount(); )
{
m_List.SetItemState (Index, ~LVIS_SELECTED, LVIS_SELECTED);
Index++;
}
break;
}
else
{
SelctedItems++;
}
}
Index++;
}
*pResult = 0;
}
m_List是我对CListCtrl的控制变量
答案 2 :(得分:0)
此功能没有内置功能。你必须为此编写我们的代码。也许你可以找到另一种方法,比如拥有一个源列表和一个“选择列表”。您可以将项目从第一个复制/移动到第二个,但是您不允许用户将超过10个项目放入目标列表。