首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
MFC_day01
时间:
2014-10-26 22:52:37
阅读:
212
评论:
0
收藏:
0
[点我收藏+]
标签:
style
color
io
os
ar
使用
sp
文件
数据
MFC 第一天 (个人笔记)
MFC是基于Windows平台的一个框架开发,我们主要学习的东西有如下四点:
1)MFC - 微软基础类库和框架;
2)COM - 组件编程的应用;
3)ADO - windows平台下数据库的访问和操作;
4)SOCKET - windows平台下网络通讯编程;
二.需要我们掌握技能如下:
1)熟练使用断点调试程序的方法;
2)掌握CALL STACK(调用堆栈)方法,查看函数之间的调用关系;
3)会借助MSDN 查看开发帮助手册;
4)学会使用VC6.0的工具和向导;
*********************************************************************
了解以上知识下面进入正题
*********************************************************************
一 .MFC的概念和作用
1)什么MFC?
全称为Microsoft Foundation Class Library我们称之为微软基础类库;
1.1 从硬盘存在形式上来说 MFC就是一个库(静态/动态 MFC库);
1.2 从原理上来说MFC还是一个程序框架;
2)为什么使用MFC?
基于框架编程,提高工作效率,减少开发周期,节约开发成本。
二.头文件
afx.h - 包含了绝大部分类的声明。
afxwin.h - 包含了 afx.h 和 windows.h。
afxext.h - 包含了一些扩展类的声明。 例如:工具栏 和 状态栏....
附:****************************************************************
以Afx.....开头的函数,可以确定是MFC库中封装的全局函数。
以:: .........开头的函数,可以确定是WIN32的API函数。
********************************************************************
三.MFC应用程序的分类
1)使用MFC制作自己控制台程序 (
入口函数不同与以往的入口函数,
多了一个全局对象 CWinApp theApp);
2)使用MFC库制作自己的静态库程序。
3)使用MFC库制作自己的动态库程序。
使用静态MFC库制作自己的规则动态库。
使用动态MFC库制作自己的规则动态库。
使用MFC库制作自己的扩展动态库。
4)使用MFC库制作自己的窗口程序
单文档视图构架程序
CFrameWnd - 框架窗口类,封装了关于框架窗口的各种操作
CWinApp - 应用程序类,负责管理程序流程。
CDocument - 文档类,负责管理数据(数据提取/转换/存储...)
CView - 视图窗口类,封装了关于视图窗口的操作
多文档视图构架程序
CMDIChildWnd - 子框架窗口类,封装了关于子框架窗口操作
CMDIFrameWnd - 主框架窗口类,封装了关于主框架窗口操作
CWinApp - 应用程序类,负责管理程序流程。
CDocument - 文档类,负责管理数据(数据提取/转换/存储...)
CView - 视图窗口类,封装了关于视图窗口的操作
对话框构架程序
CWinApp - 应用程序类,负责管理程序流程。
CDialog - 对话框窗口类,封装了关于对话框窗口的操作
四)MFC库中类的概述
1)COjbect - MFC库中绝大部分类的最基类
运行时类信息机制 / 动态创建机制 / 序列化机制
2)CCmdTarget - 消息映射机制的最基类
3 CWinThread / CWinApp - 应用程序类,负责管理程序流程
4 CDocument及其子类 - 文档类,封装了关于各种数据的操作
5 Exceptions - 异常处理类,封装了MFC库中各种异常情况的处理
6 CFile及其子类 - 文件操作类,封装了关于各种文件的读写等操作。
7 CWnd - MFC库中所有窗口类的最基类
8 Frame Windows - 框架窗口类,负责管理各种框架窗口
9 DialogBoxes - 对话框窗口类,封装了关于各种对话框窗口的操作
10 Views - 视图窗口类,封装了关于各种视图窗口的操作
11 Controls - 控件窗口类,封装了关于各种控件窗口的操作
12 CDC及其子类 - 封装各种绘图设备,以及绘图函数
13 CGdiObject及其子类 - 封装了各种GDI绘图对象的使用
14 CArrary / CList / CMap及其子类 - 封装了C++中相应的数据结构
15 非CObject类 - 封装了各种数据结构的操作。
例如:CPoint / CRect / CSize / CTime....
五 第一个MFC程序
1 配置环境
1)删除入口函数WinMain
2)将头文件更改为<afxwin.h>
3)Project-->Settings中设置使用MFC库
2 代码书写
2.1 从CFrameWnd类公有派生了一个自己的框架窗口类CMyFrameWnd
2.2 从CWinApp类公有派生了一个自己的应用程序类CMyWinApp
重写了CWinApp类成员虚函数 InitInstance
3 程序执行流程
3.1 构造theApp对象(爆破点)
1)将&theApp保存到 当前程序线程状态信息中
2)将&theApp保存到 当前程序模块状态信息中
3)AfxGetThread()/AfxGetApp() - 返回&theApp
3.2 进入入口函数(WinMain)
1)获取theApp(爆破点)的地址
2)利用theApp调用应用程序类成员虚函数
InitApplication(初始化)
3)利用theApp调用应用程序类成员虚函数
InitInstance(创建/显示窗口)
4)利用theApp调用应用程序类成员虚函数
Run(消息循环)
4.1)如果没有消息 利用theApp调用应用程序类成员虚函数
OnIdle(空闲处理)
4.2)如果程序退出 利用theApp调用应用程序类成员虚函数
ExitInstance(善后处理)
六 CWinApp类的成员函数
InitApplication
InitInstance
Run
OnIdle
ExitInstance
七 对象关系图
theApp
|->m_pMainWnd (保存框架类对象地址pFrame)
MFC_day01
标签:
style
color
io
os
ar
使用
sp
文件
数据
原文地址:http://www.cnblogs.com/wutengbiao/p/4052868.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!