http://scorpiomiracle.iteye.com/blog/710511
这里有个关键点就是执行顺序和执行了什么的问题?
当触发CBN_SELCHANGE消息时,这时combobox中的索引值改变,但是这时候的文字框里面的内容没有改变。这时GetWindowText()肯定得到的是先前的内容(相对于想要的)。这以后,在完成关联变量的更新,combobox里面出现想要的内容。
为此,解决方法如下:因为在触发消息时改变的是索引值,所以要从索引值下手,可以通过如下方式:
在 CBN_SELCHANGE 的响应函数中:
int index = ((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel(); //获得想要的索引值
((CComboBox*)GetDlgItem(IDC_COMBO1))->SetCurSel(index); //设置成想要索引值的值
UpdateData(true) 来获取关联变量,即改变后的值
或者:
GetCurSel()+GetLbText(n,strTemp)来取得改变后的值