9299.net
大学生考试网 让学习变简单
当前位置:首页 >> 理学 >>

第11章MFC程序设计_图文

第11章MFC程序设计_图文

第11章
MFC程序设计

主要内容
? MFC简介
? MFC程序的生成及运行 ? MFC程序的组成

Application Framework
? 概念:是一个完整的程序模型,具备标

准应用软件所需的一切基本功能,像是 文件存取、打印预览、数据交换……, 以及这些功能的使用接口(工具栏、菜 单、状态栏、对话框) ? 功用: Class Library、GUI toolkit

MFC(Microsoft Foundation Classes)
? C++版的Microsoft windows API
? MFC类包括以下几个群组: – General Purpose classes – Windows API classes – Application Framework classes – High level abstractions – Operation system extentions

MFC(Microsoft Foundation Classes)
? Afx全局函数
函数名称
AfxWinInit
AfxGetApp AfxGetMainWnd AfxGetInstance AfxRegisterClass

说明
被WinMain调用做MFC GUI程序初 始化的一部分 获得application object(CWinApp 派生对象)的指针 获得程序主窗口的指针 获得程序的instance handle 以自定义的WNDCLASS注册窗口 类

MFC(Microsoft Foundation Classes)
? MFC数据类型 数据类型
BOOL BSTR BYTE COLORREF DWORD LONG LPARAM LPCSTR LPSTR Boolean值 32-bit字符指针 8-bit整数,无正负 32-bit数值,代表一个颜色值 32-bit整数,无正负 32-bit整数,带正负 32-bit数值,做为窗口函数或callback函 数的一个参数 32-bit指针,指向一个常数字符串 32-bit指针,指向一个字符串

意义

MFC(Microsoft Foundation Classes)
数据类型
LPCTSTR
LPTSTR LPVOID

意义
32-bit指针,指向一个常数字符串。此字 符串可移植到Unicode和双字节字集 32-bit指针,指向一个字符串。此字符串 可移植到Unicode和双字节字集
32-bit指针,指向一个未指定类型的数据

LPRESULT
UINT

WNDPROC LPRECT WORD

32-bit数值,做为窗口函数或callback函数 的返回值 32-bit无正负整数 32-bit指针,指向一个窗口函数 32-bit指针,指向一个不变的RECT函数 16-bit整数,无正负号

MFC类层次结构
CObject CCmdTarget

CWinThread
CWinApp CWnd CFrameWnd

CView
CDocument

1.框架窗口类
类名 说明

CWnd 通用窗口类,提供MFC窗口的通用特性 CFrameWnd 单文档应用程序的主框架窗口 CMDIFrameWnd 多文档应用程序的主框架窗口 CMDIChildWnd 多文档应用程序的子窗口 CSplitterWnd 支持分隔窗口 CView 文档/视图应用程序的基本视图 CFormView 包含控件的视图 CEditView 具有编辑功能的视图类 CDialog 对话框基类 CButton 文本编辑框类

2.程序结构类
类名 CWinApp Cdocument CDOcTemplate 说明 应用程序类,提供管理整个应用程序及 初始 化应用程序等功能 文档类,提供保存应用程序的数据和磁 盘文件操作 一个抽象基类,为文档模板封装了基本 功能

3.图形类
? Windows引入了一个名为图形设备接口

(GDI)的抽象层。Windows提供视频和 打印机驱动程序,所以,应用程序不必 知道系统连接的显卡和打印机的类型。 程序不是寻址硬件,而是调用GDI函数, 这些函数引用名为设备环境的数据结构。 ? 每一个C++设备环境对象有一个相关的 Windows设备环境,它由一个32位的 HDC类型句柄来进行标识。

3.图形类(续)
? MFC提供的图形类可分为设备环境类(CDC)

和图形工具类(CGdiObject)。CDC是所有设 备环境类的基类,实现了对Windows中设备环 境的封装,有绘图需要的所有成员函数。图形 工具是用于绘图操作的一个对象, CGdiObject 是图形工具类的基类,不能直接使用,它提供 了多个派生类,用于选择画刷、画笔及字体等。 ? 显示器环境类CClientDC和CWindowDC - 窗口的客户区(CClientDC)不包括边框、 标题栏和菜单栏。 - CWindowDC访问CWnd的整个屏幕区域

部分图形类
类名 CDC CClientDC 环境
CPaintDC 备环境 CBrush Cpen CFont

说明 封装了Windows中的设备环境,提
供成员函数操作的设备环境 构造与窗口中客户区域相关的设备 构造响应WM_PAINT消息使用的设 实现对WindowsGDI中画刷的封装 实现对WindowsGDI中画笔的封装 实现对WindowsGDI中字体的封装

MFC程序常用头文件
? 预编译头文件Stdafx.h
? 常用头文件 – Stdafx.h – Afxwin.h – Afxext.h (使用工具栏、状态栏) – Afxdlgs.h (使用通用对话框) – Afxres.h (MFC程序的RC需要)

MFC程序的诞生
? Application object产生 ? AfxWinMain执行AfxWinInit ? AfxWinMain执行InitApplication

? AfxWinMain执行InitInstance创建一个

CFrameWnd对象 ? CFrameWnd构造函数调用Create,产生主窗口 ? 回到InitInstance继续执行ShowWindow、 UpdateWindow ? 回到AfxWinMain执行run,进入消息循环

MFC程序的运行
? 程序获得WM_PAINT消息(藉由

CWinApp::Run中的::GetMessage循环) ? WM_PAINT经由::DispatchMessage送到 窗口函数CWnd::DefWindowProc中 ? CWnd::DefWindowProc将消息传递到消 息映射表格

MFC的消息处理机制
? MFC消息的种类
? MFC消息的映射机制

MFC中的消息
? 命令消息(WM_COMMAND):由UI对象产生

的消息都是这种命令消息,如来自菜单、工具 栏或加速键的消息,MFC程序依靠资源项的识 别码识别之。从CCmdTarget派生的类,都可以 接收到这类消息。 ? 标准消息:除WM_COMMAND之外,任何以 WM_开头的都算这一类。从CWnd派生的类, 都可以接收到这类消息。 ? 控件通知消息:由控件产生的消息,如按钮的 单击,列表框的选择等均产生此类消息,为的 是向其父窗口(通常是对话框)通知事件的发 生。这类消息也是以WM_COMMAND形式呈现。

MFC消息映射的三个宏
? 类头文件(.H)中声明拥有消息映射表格: DECLARE_MESSAGE_MAP() ? 类实现文件(.CPP)实现消息映射表格: BEGIN_MESSAGE_MAP(theClass, baseClass) //{{AFX_MSG_MAP(CMessageView) //}}AFX_MSG_MAP ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) …… END_MESSAGE_MAP()

通过ClassWizard处理消息映射
? ClassWizard的启用 1. View-ClassWizard-MessageMap 2. 在classview选择欲处理消息的类-鼠标右 键选择Add Windows Message Handler
? 消息响应函数的编写 ? 例子

输入输出处理
? 文本输出

(1)int DrawText(LPCTSTR lpszString,int nCount,LPRect lpRect,UINT nFormat) (2)int TextOut(int x,int y,LPCTSTR lpszString,int nCount) (3)void OnDraw(CDC *pDC)


推荐相关:

11第十一章MFC程序设计集合类.ppt_图文.ppt

11第十一章MFC程序设计集合类.ppt - MFC程序设计 集合类 作者:李季


第11章 简单MFC应用程序开发_图文.ppt

第11章 简单MFC应用程序开发 11章 简单MFC应用程序开发 MFC 重点 1.SDI中文档...示例系统中客户端界面设计 3.示例系统中客户端界面设计 2009年1月 重庆理工大学...


Visual C++教程 第11章 对话框程序设计_图文.ppt

Visual C++教程 第11章 对话框程序设计_计算机软件及应用_IT/计算机_专业资料。...种控件都是由MFC MFC的 和组框控件.这4种控件都是由MFC的CButton 类进行...


Visual C++程序设计教程第11章 网络编程_图文.ppt

Visual C++程序设计教程第11章 网络编程 - 第 11 章 网络编程


c++面向对象程序设计第11章 数据库编程_图文.ppt

c++面向对象程序设计第11章 数据库编程 - 第11章 数据库编程 有很多种使


《VisualC程序设计教程与上机指导》第11章:数据库编程_....ppt

《VisualC程序设计教程与上机指导》第11章:数据库编程 - 第11章 数据


MFC 教程 第11章 对话框_图文.ppt

MFC 教程 第11章 对话框 - 1 对话框是Windows应用程序中一种常用


C++程序设计语言 揣锦华 第11章 Visual C++环境下Windo....ppt

C++程序设计语言 揣锦华 第11章 Visual C++环境下Windows


MFC Windows应用程序设计(第3版)任哲1-12章_图文.ppt

MFC Windows应用程序设计(第3版)任哲1-12_工学_高等教育_教育专区。MFC ...应用程序对象 文档模板 文档对象 框架窗口对象 视图对象 图3-11 应用程序创建各...


Windows程序设计MFC编程和操作_图文.ppt

Windows程序设计MFC编程和操作 - 第三章 MFC编程和操作 编程和操作 3.1Windows编程 编程 3.2MFC编程 编程 3.3MFC程序应用 程序应用 3.4消息和消息映射 ...


MFC Windows应用程序设计(第3版)任哲18章_图文.ppt

MFC Windows应用程序设计(第3版)任哲18_工学_高等教育_教育专区。MFC ...图18-11 创建MFC工程 图18-12 程序设置 图18-13 添加消息处理函数 图18-14...


第11章菜单和文档_图文.ppt

第11章菜单和文档 - 第11章 菜单和文档/视图结构 11.1 文档视图的概念 11.2 文档类 11.3 视图类 11.4 菜单 11.5 菜单和文档/视图结构程序设计举例 习题...


第6章MFC应用程序基础_图文.ppt

第6章MFC应用程序基础 - 第6章 MFC应用程序基础 ?重点 1.Windo


第2讲MFC程序设计基础(new)_图文.ppt

第2讲MFC程序设计基础(new) - MFC程序设计基础 重点:MFC的特点,


第一章vc++程序设计入门_图文.ppt

第1章 VC++程序设计 江西工程学院科技园 J.H Lau 教学课件 第1章 Visual C++程序设计 1.1 程序设计语言与程序设计 1.2 Visual C++语言的字符集与标识符 1...


MFC典型应用程序设计_图文.ppt

●一是在实现文件.cpp中处理 11 MFC典型应用程序设计- 消息处理机制消息


MFC面向对象程序设计_图文.ppt

MFC面向对象程序设计_其它_职业教育_教育专区。MFC 面向对象程序设计 考核


vc++程序设计第十章资源_图文.ppt

vc++程序设计第十章资源 - 第10章 在MFC中创建应 用程序的资源 1 在


第5章vc++程序设计课件_图文.ppt

第5章vc++程序设计课件_数学_初中教育_教育专区。Visual C++.NET 程序设计第五章 资源的使用建议学时:6 学习重点:理解菜单栏的设置和使用理解工具栏的设置和...


计算机高级语言(VC++)--第八讲--MFC应用程序设计(1)_图文.ppt

计算机高级语言(C++) 第八讲 MFC应用程序设计 (教材10-11章) 中国地质大学(武汉)计算机学院 本章主要内容 ? ? MFC概述 MFC类的组织结构 及主要的类的简介 ?...

网站首页 | 网站地图
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com