查询特殊字符的ASCLL码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询特殊字符ASCII码
1功能
1,用户输入(或选择)字符显示对应的ASCII码.
2.用户输入ASCII码(十进制或十六进制)显示对应字符.
3,可以设置备选字符.
2模块划分
2.1CVcToolDlg
此模块处理ASCII码与字符之间的转换.其界面如图:
一,实现功能:
(1)在①处输入(或选择)一个字符, ②③处分别显示它的十进制ASCII码和十六进制ASCII
码, ④处显示提示信息.
(2)②处输入十进制的ASCII码, ①处显示对应的字符, ③处显示十六进制的值, ④处显示
提示信息.
(3)③处输入十六进制的ASCII码, ①处显示对应的字符, ②处显示十进制的值, ④处显示
提示信息.
(4)点击⑤设置①的可选值.
二,输入限制
(1),①处只能输入一个字符,可以是一个字母,一个数字,一个汉字或一个其它字符.
(2), ②处只能输入一个整数,大于等于0小于等于65535.
(3), ③处只能输入一个不多于4位的十六制数字.
2, CSettingDlg
设置①处的可选值,其界面如图
把编辑框前的复选框钩上,编辑框的内容就会出现在①的可选值中.因为用户可以将前几个编辑的内容复制到最后一个编辑框,所以可能出现重复字符.重复字符在①中不会重复出现.
3,类结构
3.1CVcToolDlg
3.1.1转换ASCII码.
调用关系图为:
注:
(1),判断一个ASCLL码是否合法,十分简单故没有必要封装成一个函数.
(2), 顶层的四个函数是编辑和组合框的响应函数.
IsLegalChar判断字符是否合法.
IsLegalAscll16判断16进制ASCII码是否合法.
ShowDataByChar, ShowDataByAscll16, ShowDataByAscll:ASCII码与字符间的转换. SetShowingFlag设置是否正在更新.
3.1.2屏蔽非法输入.
(1)屏蔽键盘输入
字符组合框的限制(①):在PreTranslateMessage中当消息为WM_CHAR时处理.规则为:
一, 删除键一定可以输入.
二,当选中编辑时可以任意输入.
三,当字符长度小于1(为空)时可以输入.
ASCII码编辑框(②)关联一个无符号整形变量,并限制大小.
十六进制ASCII码编辑框(③)的限制:在PreTranslateMessage中当消息为WM_CHAR时处理.
一, 删除键一定可以输入.
二,只能输入0-9,a-f,A-F.
三, 字符长度为4时,不能再输入0-9,a-f,A-F,当选中编辑框中的某些字符时没有此限制. (2)复制,粘贴
等待解决
3.1.3避免循环更新显示
当①②③中的一个改变时,程序调用ShowDataByXXX改变另外两个的值.当它们的值改
变时又会调用ShowDataByXXX,形成循环调用.为了解决这个问题,增加一个函数
SetShowingFlag设置状态,为真时,ShowDataByXXX直接返回.
3.1.4设置①的可选项
调用CSettingDlg类得到可选串,如果可选串非空,加进组合框,否则清空组合框.
3.2CSettingDlg
十二个成员变量分别对应6个复选框和6个编辑框,前五个编辑框的内容不会改变,故定义成静态成员变量.
成员函数三个:
CSettingDlg构造函数, 从ini中读取相关信息.
OnOK 确定按钮的相应函数,将信息写进ini.
GetChar 将用户选择的字符串起来,然后拆分单个字符,最后删除重复的字符.
可执行程序
代码