没有合适的资源?快使用搜索试试~ 我知道了~
首页MFC入门基础教程,好东西
MFC入门基础教程,好东西
需积分: 9 12 下载量 30 浏览量
更新于2023-03-16
评论
收藏 1.9MB DOC 举报
MFC入门基础教程学习,书的内容建立在对MSDN和MFC SOURCE CODE的大量分析上,该书对于希望学习MFC的人来说,是较有价值的。
资源详情
资源评论
资源推荐
MFC 教程
我曾写一本关于 MFC 的书,分析了 MFC 的结构和设计(《MFC 深入浅出》),华中理工大学出版。书的内容建
立在对 MSDN 和 MFC SOURCE CODE 的大量分析上,该书对于希望学习 MFC 的人来说,是较有价值的。可
惜出版社好象只在几个城市针对学生作销售,虽然学生反应不错,但是外界知道不多。
教程列表:
MFC
教程( 1 ) --MFC
概述
MFC 是一个编程框架
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让
程序员在此基础上来建立 Windows 下的应用程序,这是一种相对 SDK 来说更为简单的方法。因为总体上,
MFC 框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口
把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这...
http://tech.ddvip.com/2007-03/117415707121625.html MFC
教程( 2 ) -- MFC
和
Win32
MFC Object 和 Windows Object 的关系
MFC 中最重要的封装是对 Win32 API 的封装,因此,理解 Windows Object 和 MFC Object (C++对象,一
个 C++类的实例)之间的关系是理解 MFC 的关键之一。所谓 Windows Object(Windows 对象)是 Win32 下用
句柄表示的 Windows 操作系统对象;所谓 MFC Object (MFC 对象)是 C++对象,是一个 C++类的实例,这里
(本书范围内)MFC Object 是有特定含义的,指封装 Windows Object 的 C++ Obje...
http://tech.ddvip.com/2007-03/117415714821626.html MFC
教程( 3 ) -- CObject
类
CObject 是大多数 MFC 类的根类或基类。CObject 类有很多有用的特性:对运行时类信息的支持,对动态
创建的支持,对串行化的支持,对象诊断输出,等等。MFC 从 CObject 派生出许多类,具备其中的一个或者多
个特性。程序员也可以从 CObject 类派生出自己的类,利用 CObject 类的这些特性。
本章将讨论 MFC 如何设计 CObject 类的这些特性。首先,考察 CObject 类的定义,分析其结构和方法
(成员变量和成员函数)对 CObjec...
http://tech.ddvip.com/2007-03/117415721521627.html MFC
教程( 4 ) -- 消息映射的实现( 1 )
消息映射的实现
Windows 消息概述
Windows 应用程序的输入由 Windows 系统以消息的形式发送给应用程序的窗口。这些窗口通过窗口过程
来接收和处理消息,然后把控制返还给 Windows。
消息的分类
队列消息和非队列消息
从消息的发送途径上看,消息分两种:队列消息和非队列消息。队列消息送到系统消息队列,然后到线程
消息队列;非队列消息直接送给目的窗口过程。
...
http://tech.ddvip.com/2007-03/117415733421628.html MFC
教程( 4 ) -- 消息映射的实现( 2 )
但是在当前例子中,当前对象的类 CTview 没有覆盖该函数,所以 CWnd 的 WindowProc 被调用。
这个函数把下一步的工作交给 OnWndMsg 函数来处理。如果 OnWndMsg 没有处理,则交给
DefWindowProc 来处理。
OnWndMsg 和 DefWindowProc 都是 CWnd 类的虚拟函数。
OnWndMsg 的原型如下:
BOOL CWnd::OnWndMsg( UINT message,
WPARAM wParam, LPARAM lParam,RESULT*pResult );
...
http://tech.ddvip.com/2007-03/117415736721629.html MFC
教程( 5 ) -- MFC
对象的创建( 1 ) MFC 对象的创建
前面几章介绍了 MFC 的核心概念和思想,即介绍了 MFC 对 Windows 对象的封装方法和特点;MFC 对象
的动态创建、序列化;MFC 消息映射机制。
现在,考查 MFC 的应用程序结构体系,即以文档-视为核心的编程模式。学习本章,应该弄清楚以下问题:
MFC 中诸多 MFC 对象的关系:应用程序对象,文档对象,边框窗口对象,文档边框窗口对象,视对象,
文档模板对象等。
MFC 对象的创建和...
http://tech.ddvip.com/2007-03/117415776621630.html MFC
教程( 5 ) -- MFC
对象的创建( 2 )
从这些图中可以看到何时、何处调用了什么消息处理函数和虚拟函数,这些函数用来作了什么事情。必要
的话,程序员可以在派生类覆盖它们。
在创建工作完成之后,进行初始化,使用文档对象的数据来更新视和显示窗口。
至此,本节描述了 MFC 的 SDI 程序从分析命令行到创建或打开文件的处理过程,文档对象已经动态创建。
总结如下:
命令行分析→应用程序的 FileNew→文档模板的 OpenDocu...
http://tech.ddvip.com/2007-03/117415781021631.html MFC
教程( 6 ) -- 应用程序的退出
一个 Windows 应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程
序窗口,退出应用程序为止。
例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会
导致主窗口被关闭。
当用户从“文件”菜单选择执行“退出”时,将发送 MFC 标准命令消息 ID_APP_EXI...
http://tech.ddvip.com/2007-03/117415785621632.html MFC
教程( 7 ) -- MFC
的
DLL
一般的,在介绍 Windows 编程的书中讲述 DLL 的有关知识较多,而介绍 MFC 的书则比较少地提到。即使
使用 MFC 来编写动态链接库,对于初步接触 DLL 的程序员来说,了解 DLL 的背景知识是必要的。另外,MFC
提供了新的手段来帮助编写 DLL 程序。所以,本节先简洁的介绍有关概念。
DLL 的背景知识
静态链接和动态链接
当前链接的目标代码(.obj)如果引用了一个函数却没有定义它,链接程序可能通过两...
http://tech.ddvip.com/2007-03/117415789521633.html MFC
教程( 8 ) -- MFC
的进程和线程
Win32 的进程和线程概念
进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、
管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个
是主线程。
线程是操作系统分时调度分配 CPU 时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部
分代码被另一个线程并发地执行;一个进程的所有线程共享它的...
http://tech.ddvip.com/2007-03/117415794021634.html MFC
教程( 9 ) -- MFC
的进程和线程( 1 )
MFC 定义了多种状态信息,这里要介绍的是模块状态、进程状态、线程状态。这些状态可以组合在一起,
例如 MFC 句柄映射就是模块和线程局部有效的,属于模块-线程状态的一部分。
模块状态
这里模块的含义是:一个可执行的程序或者一个使用 MFC DLL 的 DLL,比如一个 OLE 控件就是一个模块。
一个应用程序的每一个模块都有一个状态,模块状态包括这样一些信息:用来加载资源的 Windows 实例句
柄、指...
http://tech.ddvip.com/2007-03/117415799821635.html MFC
教程( 9 ) -- MFC
的进程和线程( 2 )
下面以一个动态链接到 MFC DLL 的单模块应用程序为例,说明这些对象的创建过程。
当第一次访问状态信息时,比如使用 AfxGetModuleState 得到模块状态,导致系列创建过程的开始,如图
9-7 所示。
首先分析语句 pState=_afxThreadState。如果_afxThreadData、线程状态和模块状态还没有创建,该语句
可以导致...
http://tech.ddvip.com/2007-03/117415802321636.html MFC
教程( 10 ) -- 内存分配方式和调试机制
M 内存分配
内存分配函数
MFCWin32 或者 C 语言的内存分配 API,有四种内存分配 API 可供使用。
Win32 的堆分配函数
每一个进程都可以使用堆分配函数创建一个私有的堆──调用进程地址空间的一个或者多个页面。DLL 创
建的私有堆必定在调用 DLL 的进程的地址空间内,只能被调用进程访问。
HeapCreate 用来创建堆;HeapAlloc 用来从堆中分配一定数量的空间,HeapAlloc 分...
http://tech.ddvip.com/2007-03/117415851521637.html MFC
教程( 11 ) -- MFC
下的文件类
文件操作的方法
使用 Visual C++编程,有如下方法进行文件操作:
(1)使用标准 C 运行库函数,包括 fopen、fclose、fseek 等。
(2)使用 Win16 下的文件和目录操作函数,如 lopen、lclose、lseek 等。不过,在 Win32 下,这些函数
主要是为了和 Win16 向后兼容。
(3)使用 Win32 下的文件和目录操作函数,如 CreateFile,CopyFile,DeleteFile,FindNextFile,等等。
Wi...
http://tech.ddvip.com/2007-03/117415865921638.html MFC
教程( 12 ) -- 对话框和对话框类
CDialog ( 1 )
对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的。
模式和无模式对话框
对话框分两种类型,模式对话框和无模式对话框。
模式对话框
一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定 WS_POPUP,
WS_SYSMENU, WS_CAPTION 和 DS_MODALFRAME 风格。即使没有指定 WS_VISIBLE 风格,模式对话框
也会被显示。...
http://tech.ddvip.com/2007-03/117415886921639.html MFC
教程( 12 ) -- 对话框和对话框类
CDialog ( 2 )
RunModalLoop 是一个实现自己的消息循环的示例,消息循环的条件是模式化状态没有结束。实现线程自
己的消息循环见 8.5.6 节。当用户按下按钮“取消”、“确定”时,将导致 RunModalLoop 退出消息循环,结束对话
框模式状态,并调用::EndDialog 关闭窗口。有关关闭对话框的处理如下:void CDialog::EndDialog(int
nResult)
{
ASSERT(::IsWindow(m_hWnd));
if (m_nFlags & (WF_M...
http://tech.ddvip.com/2007-03/117415921421640.html MFC
教程( 13 ) -- MFC
工具条和状态栏( 1 )
Windows 控制窗口
Windows (Windows95 或者以上版本) 提供了系列通用控制窗口,其中包括工具条(ToolBar)、状态栏
(StatusBar)、工具条提示窗口(ToolTip)。
Windows 在一个 DLL 加载时注册个控制窗口的“窗口类”。例如,工具条的“窗口类”是“ToolbarWindow32”,
状态栏的“窗口类”是“msctls_statusbar32”,工具条提示窗口的“...
http://tech.ddvip.com/2007-03/117415946421641.html MFC
教程( 13 ) -- MFC
工具条和状态栏( 2 )
消息 WM_POPMESSAGESTRING 用来重新设置状态栏。
这两个消息对应的消息处理函数分别是 OnSetMessageString 和
OnPopMessageString,OnSetMessageString 和 OnPopMessageString 分别实现如下:
OnSetMessageString
LRESULT CFrameWnd::OnSetMessageString(WPARAM wParam, LPARAM lParam)
{
//最近一次被显示的消息字符串 IDS(一个消息对应的字符串)
UINT nIDLast = m_nIDLastMessage; http://tech.ddvip.com/2007-03/117415973621642.html MFC
教程( 14 ) -- SOCKET
类的设
计和实现
WinSock 基本知识
这里不打算系统地介绍 socket 或者 WinSock 的知识。首先介绍 WinSock API 函数,讲解阻塞/非阻塞的概
念;然后介绍 socket 的使用。
WinSock API
Socket 接口是网络编程(通常是 TCP/IP 协议,也可以是其他协议)的 API。最早的 Socket 接口是
Berkeley 接口,在 Unxi 操作系统中实现。WinSock 也是一个基于 Socket 模型的 API,在 Microsoft Windows
操作系统类中使用。它在 Berkeley 接口...
http://tech.ddvip.com/2007-03/117415993421643.html
作者:李久进 «« 责编:豆豆技术应用
MFC 教程(1)--MFC 概述
MFC 是一个编程框架
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让
程序员在此基础上来建立 Windows 下的应用程序,这是一种相对 SDK 来说更为简单的方法。因为总体上,
MFC 框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口
把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:
AppWizard 可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;
ClassWizard 用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
封装
剩余63页未读,继续阅读
standy0127
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0