zoukankan      html  css  js  c++  java
  • 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、  尽量用系统自带的函数,如大小写转换等。尽量精简函数。

  • 相关阅读:
    AUDIT审计的一些使用
    HOW TO PERFORM BLOCK MEDIA RECOVERY (BMR) WHEN BACKUPS ARE NOT TAKEN BY RMAN. (Doc ID 342972.1)
    使用BBED理解和修改Oracle数据块
    Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC [ID 1340831.1]
    调试利器GDB概念
    第4章 思科IOS
    第3章 ip地址和子网划分
    第2章 TCPIP
    2020年阅读过的黑客资源推荐篇
    第1章 计算机网络
  • 原文地址:https://www.cnblogs.com/clover-xuqi/p/8005809.html
Copyright © 2011-2022 走看看