码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MPC入门


    MFC入门

    • 1.底层窗口实现-WinMain入口函数
      • 1.1编程模型
    • 2. 底层窗口实现-创建窗口的前五步
    • 3.底层窗口实现-窗口处理过程
      • 3.1整体流程
    • 4.编写一个MFC程序
    • 5.程序执行的流程
      • 5.1 MFC创建窗口
    • 6.消息映射机制
      • 6.1 消息映射具体实现
    • 7.字符集
      • 7.1 多字节 转 宽字节 L
      • 7.2 声明宽字节字符串wchar_t
      • 7.3 统计宽字节字符串wcslen
      • 7.4 TEXT做了自适应编码转换
      • 7.5 char * CString之间的转换

    1.底层窗口实现-WinMain入口函数

    1.1 sdk和api
    Windows应用程序api函数是通过c语言实现的,所有主要的Windows函数都在Windows.h头文件中进行了声明
    1.2 窗口和句柄
    一个Windows 应用程序至少要有一个窗口,称为主窗口。
    窗口是屏幕上的一块矩形区域,是Windows应用程序与用户交换的接口。利用窗口可以接受用户的输入、以及显示输出。
    在Windows应用程序中,窗口是通过窗口句柄HWND来标识的,我们要对某个窗口进行操作,首先就要得到这个窗口的句柄。
    1.3 消息与消息队列
    Windows程序设计是一种完全不同于传统的dos方式,他是事件驱动方式的程序设计模式。每个Windows应用程序开始执行后,系统都会为该程序创建一个消息队列,这个消息队列用来存放该程序创建的窗口信息。应用程序通过一个消息循环不断地从消息队列中去除消息,并进行响应。在这个处理过程中,操作系统也会给应用程序发送消息,所谓的发送消息 实际上市操作系统调用程序中一个专门负责处理消息的函数,这个函数称为窗口过程(回调函数)。
    在这里插入图片描述
    1.4 WinMain函数
    WinMain是Windows程序的入口函数,与dos程序的入口点函数main的作用相同。

    1.1编程模型

    1.WinMain函数的定义
    2.创建一个窗口
    3.进行消息循环
    4.编写窗口过程函数
    在这里插入图片描述

    2. 底层窗口实现-创建窗口的前五步

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.底层窗口实现-窗口处理过程

    在这里插入图片描述

    3.1整体流程

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.编写一个MFC程序

    在这里插入图片描述

    5.程序执行的流程

    在这里插入图片描述

    5.1 MFC创建窗口

    在这里插入图片描述

    6.消息映射机制

    消息映射机制是一个将消息和成员函数相互关联的表。
    比如,框架窗口接到一个鼠标左击消息,MFC将搜索该窗口的消息映射机制,如果存在一个处理WM_LBUTTONDOWN消息的处理机制,然后就调用OnLButtonDown。
    下面是将消息映射添加到一个类中所做的全部工作:
    1.在所操作类中,声明消息映射宏;
    2.通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAP和END_MESSAGE_MAP的调用之间处理消息
    在这里插入图片描述
    3.对应的消息处理函数分别在类中声明,类外定义
    在这里插入图片描述

    6.1 消息映射具体实现

    1.声明宏写到 .h中
    2.分界宏 写到 .cpp中
    3. 找消息宏 写到分界宏 中间
    4. 把函数原型声明写到 .h中
    5. 函数的实现写到.cpp中
    6. 鼠标、键盘、绘图

    7.字符集

    英文 一个字符对应一个字节 多字节
    中文 一个字符对应多个字节 宽字节 utf-8 3个字节,gbk 2个字节
    TEXT是由自适应编码的转换
    TCHAR 自适应编码的转换
    MessageBox(L"aaa");

    7.1 多字节 转 宽字节 L

    7.2 声明宽字节字符串wchar_t

    7.3 统计宽字节字符串wcslen

    7.4 TEXT做了自适应编码转换

    7.5 char * CString之间的转换

    在这里插入图片描述

  • 相关阅读:
    什么是 Element NFT 市场和 NFT 聚合?
    工业电脑工控主机维修各种品牌型号人机界面工控屏深圳捷达工控维修
    图解 LeetCode 算法汇总——链表
    从0开始学汇编第一天:基础知识
    人工智能知识
    Veeam Backup Enterprise Manager身份验证绕过漏洞(CVE-2024-29849)
    Hadoop3教程(三十四):(生产调优篇)MapReduce生产经验汇总
    Qt6 mathgl数学函数绘图
    mybatis判断是否为空或null
    VictoriaMetrics之vmagent
  • 原文地址:https://blog.csdn.net/qq_41571224/article/details/126717048
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号