读书人

combbox 取舍

发布时间: 2012-11-06 14:07:00 作者: rapoo

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

读书人网 >VC/MFC

热点推荐