骆肖群为什么挂不到号:关于ListBox的问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 05:50:55
我现在有两个ListBox:"List1和List2",其中List1的Style属性是1-CheckBox,当我选择List1里的一个选项时,选项前面的CheckBox会打勾,并且那个选项会显示在List2里,当我取消所选的选项时,List2里面所对应的选项也会清除,请问要怎样写这个程序,谢谢
把程序写给我,可以吗?谢谢

我用的是一个list contrl和list box
就2个函数,你自己看吧

BOOL CTestmfc0Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
int i=0;
AddComboText.RemoveAll();
for (i=0; i<8; i++)
{

AddComboText.Add(AssSkillTypeMode[i].strtxt);
//AfxMessageBox(AddComboText.GetAt(i));
}
m_listbox.InsertColumn(0,_T("1类别"),LVCFMT_IMAGE|LVCFMT_LEFT,101);
m_listbox.InsertColumn(1,_T("2类别"),LVCFMT_LEFT,100);

//ListView_SetExtendedListViewStyle(m_listbox.m_hWnd,
//LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES);
m_listbox.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES);

for (i=0; i<8; i++)
{
m_listbox.InsertItem(i, AssSkillExample[i]);
m_listbox.SetItemText(i, 1, AddComboText.GetAt(i));
}
return true;
}

void CTestmfc0Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
m_listbox.ScreenToClient(&point);
UINT nFlag;
int nItem = m_listbox.HitTest(point, &nFlag);
if(nFlag == LVHT_ONITEMSTATEICON)
{
if(m_listbox.GetCheck(nItem)==0)
{
CString str1,str2;
str1 = m_listbox.GetItemText(nItem,0);
str2 = m_listbox.GetItemText(nItem,1);
str1 = str1 + ' '+ str2;
m_listbox.AddString(str1);
}
else
{
CString str4,str5;
str4 = m_listbox.GetItemText(nItem,0);
str5 = m_listbox.GetItemText(nItem,1);
str4 = str4 + ' '+ str5;
for(int i=0;i < m_listbox.GetCount();i++)
{
int nItem1 = m_listbox.FindString(nItem,str4);
if(nItem1 != LB_ERR)m_listbox.DeleteString(nItem1);
}
}
*pResult = 0;
}
}