create table Circuit(
SlotNum int not null, # 槽位
InnerNum int not null, # 板内电路编号
CirType int default 0, # 电路类型
)
比如槽位为1时 INNEWNUM范围为0-15,相对应的显示在list control中.
现在我要多选list中的内容,并记录选择的内容加以其他操作:
POSITION pos = m_list_cirnum.GetFirstSelectedItemPosition(); //开始选择记录
if(pos == NULL)
{
return;
}
else
{
CString sameitem; //储存第一个选中的槽位号
while(pos)
{
CirItem = m_list_cirnum.GetNextSelectedItem(pos); if(SelectCount == 0)
{
sameitem = m_list_cirnum.GetItemText(CirItem,0);
}
if(SelectCount > 0)
{
CString tempitem = m_list_cirnum.GetItemText(CirItem,0);
if(tempitem != sameitem) //将非第一个选中的槽位号和第一个相比
{
//////////////////////////如何将选中的非同槽一位的记录变为没选中???///////////////////
}
}
//目的是不能同时选择槽位不同的记录,但是我没有实现成功 //然后在完成选记录操作后对其选中的记录进行其他操作...
m_list_chosecirnumedit.AddString(m_list_cirnum.GetItemText(CirItem,1));
Cirstr[SelectCount].Format("%d",CirItem);
SelectCount++;
}
}
SlotNum int not null, # 槽位
InnerNum int not null, # 板内电路编号
CirType int default 0, # 电路类型
)
比如槽位为1时 INNEWNUM范围为0-15,相对应的显示在list control中.
现在我要多选list中的内容,并记录选择的内容加以其他操作:
POSITION pos = m_list_cirnum.GetFirstSelectedItemPosition(); //开始选择记录
if(pos == NULL)
{
return;
}
else
{
CString sameitem; //储存第一个选中的槽位号
while(pos)
{
CirItem = m_list_cirnum.GetNextSelectedItem(pos); if(SelectCount == 0)
{
sameitem = m_list_cirnum.GetItemText(CirItem,0);
}
if(SelectCount > 0)
{
CString tempitem = m_list_cirnum.GetItemText(CirItem,0);
if(tempitem != sameitem) //将非第一个选中的槽位号和第一个相比
{
//////////////////////////如何将选中的非同槽一位的记录变为没选中???///////////////////
}
}
//目的是不能同时选择槽位不同的记录,但是我没有实现成功 //然后在完成选记录操作后对其选中的记录进行其他操作...
m_list_chosecirnumedit.AddString(m_list_cirnum.GetItemText(CirItem,1));
Cirstr[SelectCount].Format("%d",CirItem);
SelectCount++;
}
}
要是不想让多选,属性设为单选就可以了啊。
怎么看起来搞的这么复杂。。
用ListCtrl的SetItemState即可修改指定行的选中状态。