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日

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败