MFC学习总结报告
--基于LoveString的软件复刻
功能实现:
1、 实现了输入Text文本,能转出对应的UTF8、Unicode、UniBigEnd、ANSI的编码。
2、 实现了输入Unicode编码,能解析回对应的Text以及其他编码。(其他输入原理相同,亦可以转换)
3、 实现了按钮实现文本复制进剪切板。为按钮添加图片。
4、 实现了菜单栏添加新栏,并对应功能,如:窗口置顶。
5、 实现了静态文本的字体设计。
未实现功能:
1、 侧边的选中框
2、 二层目录
3、 绑定快捷键
4、 侧边框大小自由拖拽。
知识点学习:
1、 数据类型占位关系。
a) 对编码和字节,数据类型的占位,有更清晰的理解。在MFC中,空间关系
i. 1 DWORD = 1 int = 1 float = 2 WORD = 2 wchar_t = 4 BYTE = 4 char = 32 BIT;
ii. Sizeof()函数按照字节数来定。即 位数除以8;
iii. 疑惑:按照组成原理中定义,一个字长是一次CPU处理能力的长度,如32位系统,字长32。但是又定义 一个WORD的长度为字长。 实际编码中,WORD仅16位。
2、 编码方式学习:
主流编码方式 有三种 UNICODE,UTF-8,ANSI。
a) UNICODE:称为万国码,地球上所有的语言符号,均能实现。所有符号均采用 16bit编码。
b) UTF-8:在Unicode编码的基础上,解决美英国家中,英文字母作为主要传输方式,却占据16位,浪费空间。故英文区间的符号,仍只占用8bit,带来的是其他国家的符号,比较少见的符号,需要占用24bit。Unicode和UTF-8可以直接通过算法转换。
c) ANSI:用1个字节表示最初的ANSI,用两个字节,表示拓展,其中符号位为1,即直接%d打印显示为负数,表示拓展的内容。其中简体中文的ANSI拓展即为 GBK编码,Big5则是繁体中文编码。信息国际交流则不通。与Unicode无法直接实现算法转换。需要通过映射表实现。在编译器下则显示为,用windows函数。WideCharToMultiByte以及MultiByteToWideChar实现相互转换。
收获总结:
通过一周的学习,初步掌握了,VS的基本功能使用,以及MFC大致框架结构。改进了编码风格,以及规范了命名方式。设计上实现了自己类的封装以及与MFC的解耦。尤其是解除了对windows底层函数的未知和惧怕。以及清晰了对编码、还有数据占位的关系。
存在问题:
1、 提交代码时,应注意不要有多余的头文件。
2、 尽量用系统自带的函数,如大小写转换等。尽量精简函数。