void CCarDlg::OnSelchangeCarId() //选中下拉列表触发事件
{
// TODO: Add your control notification handler code here
    int nIndex = m_cId.GetCurSel(); //获取选择项序号
    if (CB_ERR == nIndex) //没有选中项
    return;
CString str;
m_cId.GetLBText(nIndex,str); 
if(nIndex=10)
{
    GetDlgItem(IDC_CAR_NAME)->SetWindowText(str="X");//把字符串写入EDIT,IDC_EDIT为EDIT的ID,可自行修改。
          }
         else if(nIndex=20)
         {GetDlgItem(IDC_CAR_NAME)->SetWindowText(str="Y");}
         else if(nIndex=30)
         {GetDlgItem(IDC_CAR_NAME)->SetWindowText(str="Z");}
为什么在选择10,20,30时,edit框中只显示X,而没有随变化改变Y,Z等
请指教出了什么问题啊???

解决方案 »

  1.   

    nIndex=10应该是nIndex==10
    nIndex=20应该是nIndex==20
    ......
      

  2.   

    if(nIndex=10)
    比较语句里,最好把数字写在前面(if(10=nIndex)),
    如果是在做比较,而不小心写成了一个等号,
    编译器会自动报错,所以尽量把数字写在前面,
    变量写在后面。
      

  3.   

    而且当改成nIndex==10/20/30时,选择后edit框都没有内容显示
    在还是nIndex=10/20/30时,还都可以显示X。。
    为什么啊????
      

  4.   

    if(nIndex==10)表示你选择的是列表框中第 11 的项,并不是列表框中显示字符串为"10"的项.如果列表框中第 0 项显示的字符串为"10",则改为
    if(nIndex==0)
    ......