修改第三方窗口上Combobox选中项

修改一个ComboBox选中的值需要几步 我发送了
SendMessage(hComboBox, CB_SETCURSEL, i, 0);
SendMessage(hComboBox, CBN_SETFOCUS, i, 0);
//i为我需要选中的项
组合框的显示是对的,但是得到的结果还是不对(界面坐标单位没发生改变)
之后 我
SendMessage(hComboBox, CB_SETCURSEL, i, 0);
SendMessage(hComboBox, CBN_SETFOCUS, i, 0);
SendMessage(hUnitDialog, CBN_EDITUPDATE, i, (LPARAM)hComboBox);
n = SendMessage(hComboBox, CB_GETCURSEL, 0, 0);
SendMessage(hComboBox, CB_GETLBTEXT, n, (LPARAM)wcTemp);
CString strTemp2;
strTemp2 = wcTemp;

        获得到的strTemp2也是我想要的单位,但是结果也是不正确的,也就是说选中项并没有改变进去

http://blog.csdn.net/visualeleven/article/details/6403628
参考这个吧,与之类似的~

SetFocus选中以后发送键盘消息VK_UP试试看。有的combobox是自己实现的(比如vb6、delphi等)不是windows api。

不知道你采用的是第三方的控件还是自己写的,看你上面调用的是封装口的结果函数,来给combox赋值,一般这种问题应该是combox尚未初始化完毕,你就直接调用了赋值函数,导致combox本身来不及接收你指定的赋值结果,所以建议赋值时要在combox初始化完毕后进行,即onLoadSuccessed成功之后进行,
    也可以通过setTimeout设置等待时长,多长时间后再赋值,如果想要更精确的定位问题,建议把SendMessage函数贴进来