1、CListBox
想做一个如图的listbox应用:
首先,将listbox的selection属性置为Extend。
向右按钮:
void CDlg::OnBnClickedButtonToRight1()
{
// TODO: 在此添加控件通知处理程序代码
int nCount =m_listBoxLeft.GetSelCount();
CString cCount;
CArray<int,int> aryListBoxSel;
aryListBoxSel.SetSize(nCount);
m_listBoxLeft.GetSelItems(nCount, aryListBoxSel.GetData());
//得到总数
for (int i=0;i<nCount;i++)
{
CString selStr;
m_listBoxLeft.GetText(aryListBoxSel[i],selStr);
m_listBoxRight.AddString(selStr);
// m_listBoxLeft2.DeleteString(aryListBoxSel[i] - i);
}
<span style="white-space:pre"> </span>//删除已经添加过的项
for (int i = 0; i < nCount; i++)
{
m_listBoxLeft.DeleteString(aryListBoxSel[i] - i);
}
}
向左按钮:
void CDlg::OnBnClickedButtonToLeft1()
{
int nCount =m_listBoxRight.GetSelCount();
CString cCount;
CArray<int,int> aryListBoxSel;
aryListBoxSel.SetSize(nCount);
m_listBoxRight.GetSelItems(nCount, aryListBoxSel.GetData());
//得到总数
for (int i=0;i<nCount;i++)
{
CString selStr;
m_listBoxRight.GetText(aryListBoxSel[i],selStr);
m_listBoxLeft.AddString(selStr);
// m_listBoxLeft2.DeleteString(aryListBoxSel[i] - i);
}
for (int i = 0; i < nCount; i++)
{
m_listBoxRight.DeleteString(aryListBoxSel[i] - i);
}
}
2、CListCtrl
a、初始化时,设置风格和表头
<pre name="code" class="cpp">
void CDlgOracleQuery::SetListHead()
{
m_historyData.SetExtendedStyle (LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );//设置扩展格式,整行选择,网格线
int nLen = 5;
if (nLen < 1)
{
MessageBox("列表头设置失败!");
}
//删除所有列
while(m_historyData.DeleteColumn(0));
m_historyData.InsertColumn(0, "TIME");
CString strText;
m_historyData.SetColumnWidth(0, 130);//时间列单独设置
for (int i = 0; i < nLen; i++)
{
strText.Format("%d", i);
m_historyData.InsertColumn(i + 1, strText);
m_historyData.SetColumnWidth (i + 1,70);
}
}
b、插入行(下面是插入20行数据。)
for(int i=0; i<20; i++)
{
m_historyData.InsertItem( i,"shijian");
strTemp.Format("%.3f", i);
m_historyData.SetItemText(i, 1, strTemp);
m_historyData.SetItemText(i, 2, strTemp);
m_historyData.SetItemText(i, 3, strTemp);
m_historyData.SetItemText(i, 4, strTemp);
m_historyData.SetItemText(i, 5, strTemp);
}