如果你是用win32 api,在msdn上搜索wm_command消息与combobox相关的内容,你说的CBN_开头的消息是combobox notify的简写,尝试响应WM_NOTIFY消息,这也是微软推荐的消息,适合多重嵌套的复杂窗口,具体内容太多,msdn吧
帮你查了下,收到wm_notify的时候lparam应该是一个NMCOMBOBOXEXW*它里面的COMBOBOXEXITEMW ceItem成员里面有个UINT mask,这个应该就是你要的东西
如果是用win32 api,在msdn上搜索wm_command消息与combobox相关的内容,说的CBN_开头的消息是combobox notify的简写,尝试响应WM_NOTIFY消息,这也是微软推荐的消息,适合多重嵌套的复杂窗口,具体内容太多,msdn吧
收到wm_notify的时候lparam应该是一个NMCOMBOBOXEXW*它里面的COMBOBOXEXITEMW ceItem成员里面有个UINT mask。
//还是CBN_SELCHANGE的响应函数里这样写
void CTestDigital::OnCbnSelchangeCmbIoName()
{
TCHAR buf[MAX_PATH] = { 0 };
int idx = m_Cmb.GetCurSel();
if (-1 != idx)
{
m_Cmb.GetLBText(idx, buf);// buf 就是选择改变后的值
}
((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp); //将获取的值存放到CString类型变量strTemp中。IDC_COMBO_CF是你控件的ID