combbox 选择
为何OnCbnSelchangeCombo1 事件中每次获取内容都是上一次的值。为什么呢??
void CDlg5_CeDian::OnCbnSelchangeCombo1()
{
// TODO: 在此添加控件通知处理程序代码
CString strCeDian;
((CComboBox*)GetDlgItem(IDC_COMBO1))->GetWindowText(strCeDian);
}
[解决办法]
((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurSel();//取得当前选择项目的位置,以0开始.
获取当前字符:
((CComboBox*)GetDlgItem(IDC_COMBO1))->GetCurText()(好象是这个函数,你查一下获取当前的字符具体是什么函数)
[解决办法]
- C/C++ code
CComboBox::GetCursel();CComboBox::GetLBText();
[解决办法]
void CxxxxDlg::OnSelchangeCombo()
{
// TODO: Add your control notification handler code here
int sel=m_TestComBo.GetCurSel();
CString str;
m_TestComBo.GetLBText(sel, str);
afxDump << str << "\r\n";
}
[解决办法]
CComboBox::GetLBText()
[解决办法]
GetLBText(cur,buf);
[解决办法]
// OnCbnSelchange得到的是selected前的值
// OnCbnSelected(好像叫这个),是select结束后的值。
[解决办法]
组合框响应选择改变事件有个非常重要的一点是:此消息的触发在组合框文字显示之前
所以在消息响应里获取当前组合框的文本是获取到上次选择的文本,而不是当前选择的。
关联CString变量m_strSpan
ON_CBN_SELCHANGE(IDC_COMBO_symbo, &CDlg_PutOutDataToTXT::OnCbnSelchangeComboSpin)
错误代码
- C/C++ code
void CDlg_PutOutDataToTXT::OnCbnSelchangeComboSpin() { CString str; GetDlgItemText(IDC_COMBO_symbo,str); //或者直接用UpDateData都不行的 …… }
[解决办法]
这个必须用GetLBText