MFC学习总结报告

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、  尽量用系统自带的函数,如大小写转换等。尽量精简函数。

原文地址:https://www.cnblogs.com/clover-xuqi/p/8005809.html