combobox 过滤字符 在一个组合框里 ,有几行数据,比如这样的三行数据: "星期一 (5)" ," 星期二 (7) " , " 星期三 (2)",当用户选择其中一行时,要把括号中的内容过滤掉再显示到组合框的编辑框中,比如选择“星期二 (7)”这行 ,那么只显示“星期二”到编辑框。那么,这些过滤字符的代码应该写在哪里呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LRESULT OnUpdateCombo(WPARAM wParam, LPARAM lParam);#define MSG_UPDATECOMBO WM_USER + 0x11ON_CBN_SELENDOK(IDC_COMBO1, OnSelendokCombo1)ON_MESSAGE(MSG_UPDATECOMBO, OnUpdateCombo)// CBN_SELENDOKvoid CXXXDlg::OnSelendokCombo1() { // TODO: Add your control notification handler code here int nIndex = m_combo.GetCurSel(); if(CB_ERR != nIndex) { CString str; m_combo.GetLBText(nIndex, str); int nFlag = str.Find(_T("("), 0); if(-1 != nFlag) str = str.Left(nFlag); str.TrimRight(_T(" ")); TCHAR* buf = new TCHAR[str.GetLength() + 1]; _stprintf(buf, _T("%s"), str); PostMessage(MSG_UPDATECOMBO, 0, (LPARAM)buf); }}LRESULT CXXXDlg::OnUpdateCombo(WPARAM wParam, LPARAM lParam){ LPTSTR pBuf = (LPTSTR)lParam; m_combo.SetWindowText(pBuf); delete[] pBuf; pBuf = NULL; return 0;} 为什么m_combo.SetWindowText(str)这函数直接写在OnSelendokCombo1()里面就不起作用的呢 ,一定要postmessage到另外的函数执行? SetWindowText后要UpdateData(FALSE)再次初始化对话框。不然就PostMessage通知更新。 如何在ActiveX控件上放置MFC界面元素? 文件指针定位的问题 语音聊天系统 推荐个共享上传的地方吧 如何完整建立一个PPPoE的连接? 对去年做一个总结!也在这里给兄弟们拜个早年! 如何在对话框内画圆并移动? 请教如何在任务栏图标上显示1个快捷菜单 转载到我最常来asm版块! 请问一个view类有4千行,应不算太多,可是为什么编辑操作很慢, 文档中加入控件 CString的奇怪运算
ON_MESSAGE(MSG_UPDATECOMBO, OnUpdateCombo)// CBN_SELENDOK
void CXXXDlg::OnSelendokCombo1()
{
// TODO: Add your control notification handler code here
int nIndex = m_combo.GetCurSel();
if(CB_ERR != nIndex)
{
CString str;
m_combo.GetLBText(nIndex, str);
int nFlag = str.Find(_T("("), 0);
if(-1 != nFlag)
str = str.Left(nFlag);
str.TrimRight(_T(" "));
TCHAR* buf = new TCHAR[str.GetLength() + 1];
_stprintf(buf, _T("%s"), str);
PostMessage(MSG_UPDATECOMBO, 0, (LPARAM)buf);
}
}LRESULT CXXXDlg::OnUpdateCombo(WPARAM wParam, LPARAM lParam)
{
LPTSTR pBuf = (LPTSTR)lParam;
m_combo.SetWindowText(pBuf);
delete[] pBuf;
pBuf = NULL;
return 0;
}
不然就PostMessage通知更新。