首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么让combobox 控件屏蔽某些特殊字符

2013-11-23 
如何让combobox 控件屏蔽某些特殊字符我添加一combobox 控件,输入的字符串值需要作为新建文件夹的名字,所

如何让combobox 控件屏蔽某些特殊字符
我添加一combobox 控件,输入的字符串值需要作为新建文件夹的名字,所以不能出现某些特殊的字符,比如'*' '\'  '?'  '/'等9个字符,
(1)如何处理好呢?
(2)我现在在控件的CBN_EDITUPDATA响应函数中判断 str.Find("/");返回-1说明没有找到。
     问题是如果输入了非法字符,如果光标在最后没有问题,如果是光标在原有字符的中间,比如想插入字符,输入了非法字符,这样光标会自动跳到最后。大家能否给些解决办法。

CString STR=m_Str; // m_Str是控件对应的字符串
UpdateData(TRUE);
if(!IsStringFit(m_Str))//判断存在非法字符
{
    AfxMessageBox("非法字符!",MB_OK);
    m_Str=STR; 
    UpdateData(FALSE);
}


[解决办法]
因为你AfxMessageBox后用了UpdateData(FALSE);那编辑框肯定刷新,光标就跳到最后了
除非在这输入前记下光标的位置pos,然后最后再SetSel
[解决办法]
子类化ComboBox 在输入时屏蔽掉非法字符。。
相应 afx_msg void OnChar(
   UINT nChar,
   UINT nRepCnt,
   UINT nFlags 
);

热点排行