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

  • 相关阅读:
    Android之上下文context
    如果简单的记录,就可以为这个世界创造更多的财富,那么还有什么理由不去写博客呢? — 读<<黑客与画家>> 有感
    【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库
    【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API
    【最新】LuaJIT 32/64 位字节码,从编译到使用全纪录
    简陋的swift carthage copy-frameworks 辅助脚本
    【自问自答】关于 Swift 的几个疑问
    【读书笔记】The Swift Programming Language (Swift 4.0.3)
    【读书笔记】A Swift Tour
    【趣味连载】攻城狮上传视频与普通人上传视频:(一)生成结构化数据
  • 原文地址:https://www.cnblogs.com/clover-xuqi/p/8005809.html
Copyright © 2011-2022 走看看