问题1:Combo Box 如何获取我选择新的内容?比如列表中有五项:ETH,IPv4,IPv6,TCP,UDP,默认为ETH,选择IPv6后我要及时获取IPv6被选中。现在我使用ON_CBN_SELCHANGE(列表框中选择的行发生改变),只能获取选择之前的信息
void CWinpCapDemoDlg::OnSelchangeComboType() 
{
    // TODO: Add your control notification handler code here
    CString strType;
    m_ctrlComboType.GetWindowText(strType);
    AfxMessageBox(strType);
}
原来为ETH,选择IPv6,strType此时获取的是ETH,如何实现获取IPv6。
使用ON_CBN_EDITCHANGE,选择下拉可选择的内容,是没有响应的,只有输入新的内容,才可以及时获取新输入的内容!问题2:List Control 可以通过CListCtrl::InsertColumn和CListCtrl::DeleteColumn添加 和删除列名,我现在要实现把原来有的列名全部删除,重新插入新的列名,没有找到可以一次性删除所有列名的函数,也没有找到可以获取当前列名的个数的函数,如可以获取个数,可以通过个数来循环使用CListCtrl::DeleteColumn删除所有列名。

解决方案 »

  1.   

    问题1void CWinpCapDemoDlg::OnSelchangeComboType()  

        int nindex = m_ctrlComboType.GetCurSel();
        // TODO: Add your control notification handler code here 
        CString strType; 
        m_ctrlComboType.GetLBText(nindex, strType);
        AfxMessageBox(strType); 
    }
    问题2for(int ncount=m_ctrlList.GetHeaderCtrl()->GetItemCount(); i>0; i--)
    {
        m_ctrlList.DeleteColumn(ncount-1);
    }
      

  2.   

    问题2 
    for(int ncount=m_ctrlList.GetHeaderCtrl()->GetItemCount(); ncount>0; ncount--)
    {
        m_ctrlList.DeleteColumn(ncount-1);
    }