我在对话框上添加了个属性为drop down的列表框。关联了成员变量CComboBox m_lb;我现在想判断列表框里有没有数据。 
加了如下代码:
UpdateData(TRUE);
         CString i; 
        m_lb.GetWindowText(i); 
       if(i.IsEmpty()) 
      { 
       AfxMessageBox("类别为空"); 
       return; 
      }现在我发现程序刚开始运行时,在列表框添加了内容后,运行上面的代码。显示类别为空。在列表框再次添加了内容运行后,就好了。不知道为什么

解决方案 »

  1.   

     m_lb.GetWindowText(i);得到的是在列表框中正在显示的字符串,如果开始时列表框没显示任何东西,那么i就为空
      

  2.   

    这种方法不太好吧 建议你用CComboBox::GetCount函数来得到列表框个数 大于0则不为空
      

  3.   

    m_lb.GetWindowText(i); 获取的实在组合框中CEdit中的文本。而不能判断组合框是否有数据,按照我之前给你说的使用GetCount方法来判断组合框是否有数据。UpdateData(TRUE);
          if(m_lb.GetCount() == 0)
          {
          AfxMessageBox("类别为空");
          return;
          }
      

  4.   

    那可能是我表达错误,
    我要获取的就是m_lb.GetWindowText(i); 获取的在组合框中CEdit中显示的文本。
      

  5.   

    试试if(i.GetLenght() == 0) 
          { 
          AfxMessageBox("类别为空"); 
          return; 
          }
      

  6.   

    大家帮我看看,就卡着了。我试了一下。这么写也不行
     CString i; 
     GetDlgItem(IDC_COMBO1)->GetWindowText(i);
        

    if(""==i) 

          AfxMessageBox("类别为空");       return; 
        } 
    真找不出原因
      

  7.   

    UpdateData(TRUE); 
            CString i; 
            m_lb.GetWindowText(i); 
          if(i.IsEmpty()) 
          { 
          AfxMessageBox("类别为空"); 
          return; 
          } 
    而且我这个代码在别的类的函数里也用了,就好好的没问题。就这出问题