Sxzyn 2017-05-14 02:43 采纳率: 100%
浏览 1026
已采纳

MFC CListBox 控件问题

怎样在下图中实现点击左边添加的时候,先查看这条数据在右边的列表空间中存在不存在,如果存在就退出不存在就添加。
这是我写的代码:
int nCount = m_info.GetItemCount();
CString strcou;
strcou.Format("%d",nCount);
AfxMessageBox(strcou);

for (int i = -1;i < nCount; i++)
{
    CString strTime,strDate,strSit,strhall;
    strhall.Format(m_info.GetItemText(i,1));
    strTime.Format(m_info.GetItemText(i,2));
    strDate.Format(m_info.GetItemText(i,3));
    strSit.Format(m_info.GetItemText(i,4));

    if (strhall == m_strHall && strTime == m_stTime && strDate == m_strDate && strSit == m_strSit)
    {
        AfxMessageBox("该座位已经在已选列表中!");
        continue;
    //  EndDialog(IDD_TICKETINFO);
    }
    else
    {
        m_info.InsertItem(nCount,m_strFname);
        m_info.SetItemText(nCount,1,m_strHall);
        m_info.SetItemText(nCount,2,m_stTime);
        m_info.SetItemText(nCount,3,m_strDate);
        m_info.SetItemText(nCount,4,m_strSit);
        m_info.SetItemText(nCount,5,m_strTmoney);


        CString strSql;
        strSql.Format("insert into TI_info values('%s','%s','%s','%s','%s','%s')",\
            m_strFname,m_strHall,m_stTime,m_strDate,m_strSit,m_strTmoney);
        CADORecordset Rs1(&CTicketSystem11App::m_DB);
        Rs1.Open((LPCTSTR)strSql);
    //  EndDialog(IDD_TICKETINFO);
    }
}       

请指教!!!

图片说明

  • 写回答

3条回答

  • threenewbee 2017-05-14 04:27
    关注

    m_strHall等值有没有更新,没看到你调用UpdateData更新文本框到变量
    continue;这个修改为return,否则除非列表框里每一条都相同,否则还是会在下次循环添加

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 8月17日

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办