CString s;
        num[0]=m_ctrlPort.GetCurSel();   //得到光标选项的索引
m_ctrlPort.GetLBText(num[0],s);   //
        s.TrimRight(); //去掉字节空格 
        ::WritePrivateProfileString("COMM","port",s,".\\ex1.ini"); //把选中项存入INI文件
       
       //查找给定字符串的索引
         CString str;   
       ::GetPrivateProfileString("COMM","port","Error",str.GetBuffer(20),20,".\\ex1.ini");
        int n= m_ctrlPort.FindString(0,str);
        m_ctrlPort.SetCurSel(n);
}
查找时,str是没错的,但是N的值为-858993460,很奇怪,好象int n= m_ctrlPort.FindString(0,str)这句话没错啊,为什么查不出索引值啊?

解决方案 »

  1.   

    //保存索引值可能会更方便一些://保存索引值。
    int nCurSel = m_ctrlPort.GetCurSel();
    if (CB_ERR != nCurSel)
    {
       s.Format(_T("%d"), nCurSel);
       ::WritePrivateProfileString("COMM", "port", s, ".\\ex1.ini");
    }//获取索引值。
    nCurSel = (int)GetPrivateProfileInt("COMM", "port", 0, ".\\ex1.ini");
      

  2.   

      ::GetPrivateProfileString("COMM","port","Error",str.GetBuffer(20),20,".\\ex1.ini"); 这里使用了GetBuffer,
    你是不是应该先ReleaseBuffer一下呢?
      

  3.   

    str没问题的,我单步调试了, lwx300的方法不错,搞定了