我定义两个CComboBox变量
CComboBox m_ComBox1;
CComboBox m_ComBox2;
假如m_ComBox1已经AddString "姓名","学号","班级","成绩";
想请问以下,如何实现,当m_ComBox1所显示的内容为"学号"的时候,m_ComBox2所能显示的内容只能为"姓名","班级","成绩"这三个之中的一个?

解决方案 »

  1.   

    响应combox1的ON_CBN_SELCHANGE消息,在其中动态调整combox中的内容。
      

  2.   

    响应CComboBox 的CBN_SELCHANGE事件,再用SetCurSel()
    void CYourDlg::OnSelchangeCombo() 
    {
    // TODO: Add your control notification handler code here
    m_combobox.SetCurSel(1);}
      

  3.   

    当第一个combobox改变时就改变m_nIndex的值
    m_combobox.SetCurSel(m_nIndex); 
      

  4.   

    m_ComBox2动态AddString "学号","班级","成绩"
      

  5.   

    void Cxxxxxx::OnSelchangeCombo() 

    // TODO: Add your control notification handler code here 
    int nIndex = m_ComBox1.GetCurSel();    ...//清空m_ComBox2
       switch(nIndex){
       case 0:
            ...//m_ComBox2动态AddString "学号","班级","成绩"
            brek;
       case 1:
            ...
            brek;
       case 2:
            ...
            brek;
       case 3:
            ...
            brek;
       }
    }
      

  6.   

    谢谢各位了,根据楼上各位的指导,我自己总算实现了,下面是比较完整的实现代码,如果有需要的朋友可以参考下
    void Test::OnSelchangeCombo1() //这个是响应combox1的ON_CBN_SELCHANGE消息
    {
    // TODO: Add your control notification handler code here
    int j,k;
    CString str;
    m_ComBox2.ResetContent();
    j=m_ComBox1.GetCount();
        k=m_ComBox1.GetCurSel();
    for(i=0;i<j;i++)
    {
          if (i!=k)
          {
            m_ComBox1.GetLBText(i,str);
            m_ComBox2.AddString(str);
      }
    }
    }