查询特殊字符的ASCLL码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 将用户选择的字符串起来,然后拆分单个字符,最后删除重复的字符.

可执行程序

代码

相关文档
最新文档