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

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 波形合成电路的设计学习
  • ¥15 unity脚本挂不上
  • ¥15 数学建模数学建模需要
  • ¥20 Java Sound Api 调用Mixer.getLine偶现Line unsupported错误。
  • ¥15 使用cuda加速opencv运算但是报错AttributeError: module 'cv2.cuda' has no attribute 'getCudaEnabledDeviceCount'
  • ¥15 java输入输出异常
  • ¥15 三子连珠对弈小游戏制作
  • ¥15 C++扑克牌游戏的编程
  • ¥15 有人能看一下我宿舍管理系统的报修功能该怎么改啊?链表那里总是越界
  • ¥15 cs loadimage运行不了,easyx也下了,没有用