编辑框的输入问题,请帮忙作答

bird1982 2005-11-30 11:50:03
要编辑框的输入有如下限制:

1)允许输入英文、汉字、日文

2)不允许输入符号(如常用符号 "+ - *·¥,;)

常用符号的限制,根据ASCII码,就可以实现,但特殊符号(特别是占用两个字节的)不知道如何实现,请大家提点意见,有代码最好
...全文
120 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
thisisll 2005-11-30
  • 打赏
  • 举报
回复
三儿
除了UNICODE外
其他编码 没有在0X80到0XFF的吗?
lixiaosan 2005-11-30
  • 打赏
  • 举报
回复
重载CEdit
void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

if( (nChar == ‘+’) ||

(nChar == '-') ||

(nChar == '*') ||

(nChar == "/"))

{

return;

}

else
CEdit::OnChar(nChar, nRepCnt, nFlags);

}

关于¥,;符号以及中文日文,都是占两个字节,需要挨个检查字符
如果某位高字节大于0x80,则该位和后面的字符和起来为一个字符,然后找出¥等的具体值,在onchar中屏蔽之
koower 2005-11-30
  • 打赏
  • 举报
回复
to goodboyws: nChar指的是字符的ASCII码,只是针对键盘每个键对应的字符,如果我输入一个汉字,就无法用nChar得到内码
to thisisll:你说的对,但怎样获得它的编码呢(准确应该说是内码)
goodboyws 2005-11-30
  • 打赏
  • 举报
回复
有一个方法可以考虑一下
在OnKeyDown里处理,直接屏蔽按键
thisisll 2005-11-30
  • 打赏
  • 举报
回复
他的编码是一段一段的
可以一段一段的屏蔽
goodboyws 2005-11-30
  • 打赏
  • 举报
回复
怎样获得内码是什么意思?OnChar的nChar参数就是内码啊
koower 2005-11-30
  • 打赏
  • 举报
回复
从字符映射表上可以看到规律,特殊符号的内码是连续分布的,但怎样获得内码呢?
38062708 2005-11-30
  • 打赏
  • 举报
回复
转换成UNICODE然后再找规律,应该可以找到的
lansebingbao 2005-11-30
  • 打赏
  • 举报
回复
to lixiaosan:这种方法不行,特殊符号太多了,如果一个一个的屏蔽,难免会有疏漏,因该找到他们的规律

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧