码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 利用向导创建MFC


    目录

    1、项目的创建:

    2、项目的管理 :

    3、分析以及生成的项目代码 :

    (1)、查看CFrame中的消息映射宏

    (2)、自动生成事件

    (3)、在CFrame中添加对应的鼠标处理函数 

    (4)、在VIEW中添加鼠标左键点击事件

    (5)、在VIEW中添加绘图

    1)、OnDraw的绘图

    2)、OnPaint绘图

    4、文档/视图结构:

    5、MFC中重要的函数:

    (1)、InitInstance函数

    (2)、PreCreateWindow函数

    (3)、OnCreate函数

    (4)、OnDraw和OnPaint函数

    6、扩展知识:

    7、最终的程序UI


    1、项目的创建:

    2、项目的管理 :

    打开类试图来操作操作类

    3、分析以及生成的项目代码 :

    (1)、查看CFrame中的消息映射宏

    (2)、自动生成事件

    (3)、在CFrame中添加对应的鼠标处理函数 

    由于CFrame相当于相框,所以鼠标处理的函数应该放在view中才能生效

    (4)、在VIEW中添加鼠标左键点击事件

    (5)、在VIEW中添加绘图

    绘图有俩种一种时OnDraw还有一个是OnPaint。当有OnPaint时候,OnDraw会被取代而不是覆盖。所以有OnPaint就不要有OnDraw。

    1)、OnDraw的绘图

    代码部分实现OnDraw绘图:

    2)、OnPaint绘图

    代码实现部分:

    4、文档/视图结构:

    MFC应用程序框架结构是基于文档/视图的体系结构,它定义了一种程序结构,这种结构依靠文档对象保存应用程序的数据,并且依靠视图对象控制视图的显示数据,把数据本身和他显示分离开。

    数据的存储和加载由文档类来完成,数据的显示和修改则由视觉类来完成。MFC在类CDocument和CView中为稳定视图提供基础,CWinAPP、CFrameWnd和其他类与CDocument和CView合作,把所有的片段连接起来。

    5、MFC中重要的函数:

    (1)、InitInstance函数

    应用程序的一个虚函数,MFC应用程序的入口

    (2)、PreCreateWindow函数

    在产生窗口之前让程序员由修改窗口外观的机会。通过修改传递给PreCreateWindow的结构体类型参数CREATESTRUCT,应用程序可以用于创建窗口的属性。最后调用CreateWindowEx函数完成窗口的创建

    (3)、OnCreate函数

    OnCreate函数是一个消息响应函数,响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create函数调用的。

    当Create窗口创建之后,会向操作系统发送WM_CREATE消息,OnCreate()函数主要用来响应此消息

    OnCreate和Create的区别

    1、Create()负责注册产生窗口。然后向操作系统发送WM_CREATE消息。

    2、OnCreate()不产生窗口,只是在窗口设置之前改变窗口的属性例如格式位置等。

    3、OnCreate()是消息WM_CREATE的响应函数。

    (4)、OnDraw和OnPaint函数

    我们通常使用OnDraw函数,所以不用编写OnPaint函数,否则OnDraw函数会失效。

    6、扩展知识:

    (1)、MFC中后缀为Ex的函数都是扩展函数。

    (2)、在MFC中,以Afx前缀的函数都是全局函数,可以在程序的任何地方调用。

    当前类要是用MessageBox需要使用全局的AfxMessageBox。

    7、最终的程序UI

     

  • 相关阅读:
    Idea运行支付宝网站支付demo踩坑解决及其测试注意事项
    滴滴秋招提前批正式开始,现在投递免笔试
    前端面试题记录——vue
    _kbhit() and getch() 在win11控制台程序中不好用了
    Python(1):Python基础知识
    我做了一个可视化生成ECharts代码的应用,再也不用去看复杂的文档了...(附项目源码)
    如何使用idea创建纯净版web工程?
    21. 从零用Rust编写正反向代理,tokio竟然这样对待socket!
    【Pytorch Lighting】第 3 章:使用预训练模型进行迁移学习
    js分割字符串的方法
  • 原文地址:https://blog.csdn.net/qq_59328991/article/details/133829132
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号