- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WINDOWS应用程序设计报告
MFC Windows应用程序设计报告
姓名:韦 传 少
班级:计算机软件2班
学号:040104010076
日期:2007 – 10 - 15
目录
引言: 3
第一步系统分析: 3
第二步系统的设计: 4
2.1建立发送者工程 4
2.2编辑Sender菜单项 5
2.3 添加消息响应函数 6
2.4 添加响应函数代码 7
2.5 自定义消息 8
2.6 新建工程Receiver 8
2.7添加Receiver工程代码 9
2.8 工程Receiver中自定义消息 9
2.9 添加消息映射代码 9
第三步程序运行结果: 10
3.1运行Swender:...................................................................................10
3.2 Receive接收阻塞消息 11
3.3 Receive接收非阻塞消息 11
总结: 12
参考文献: 13
题目:利用VC++6.0通过消息来实现Windows内部进程通信。
摘 要:MFC以层次结构组织起来,比较庞杂,尤其是它的消息映射机制,更是涉及到很多底层的东西。本程序通过对消息映射机制进行简要的分析,以便更好地了解MFC,进行可视化编程。同时进程间通信的实现也是windows编程中重要的组成部分,进程间通信和数据交换有多种方式:消息、共享内存、匿名(命名)管道等多种技术,其中利用消息机制实现方便、应用灵活而广泛。Microsoft应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程间通信(InterProcess Communication, IPC),进程通信就是指不同进程间进行数据共享和数据交换。
本程序就是利用VC++6.0通过消息来实现内部进程通信。
关键词:消息驱动;消息映射;MFC 程序设计;进程间通信。
引言:
微软公司提供的MFC基本类库(Microsoft Foundation Classes),是进行可视化编程时使用最为流行的一个类库。MFC封装了大部分Windows API函数和Windows控件,使得程序的开发变得简单,极大的缩短了程序的开发周期。MFC独创的Document/View框架结构,能够将管理数据的代码和显示数据的程序代码分开,并且设计了一套方便的消息映射和命令传递机制,方便程序员的开发使用。其中消息映射机制本身比较庞大和复杂,对它的分析和了解无疑有助于我们写出更为合理的高效的程序。这里我们分析一下MFC的消息映射机制,以了解MFC是如何对Windows的消息加以封装,方便用户的开发。
第一步系统分析:
MFC是在C 的基础上发展的,它是面向对象的开发工具。在以前的课程中我们已经学习过C语言和C++ 语言,在这样的基础上我们再学习MFC可以使我们更好的掌握Windows应用程序设计的基本方法和基本思想。本程序共有两个工程,其中一个命名为Sender,用来给另一个工程(命名为Receiver)发送控制消息;而工程Receiver用来接受Sender发来的消息,并且做出相应的动作。
第二步系统的设计:
下面我们利用MFC及VisualC 6.0开发工具来具体地设计工程Sender和Receiver从而达到利用消息来实现进程间通信的目的。
2.1建立发送者工程
通过MFC AppWizard新建一个单文档工程文件,取名为Sender,如图1所示,接着其他均采用VC默认设置。最终如图2所示完成工程的初步创建。
图1 设置Sender为单文档
图2 完成工程Sender的创建
2.2编辑Sender菜单项
在新建的工程Sender的Resource View栏中双击Menu下的IDR_MAINFRAME,然后在编辑菜单下添加两个菜单项:【阻塞消息】和【非阻塞消息】其ID分别为:ID_EDIT_BLOCKMESSAGE和ID_EDIT_UNBLOCKMESSAGE。如图3和图4所示:
图3 阻塞消息菜单项的设置
图4 阻塞消息菜单项的设置
2.3 添加消息响应函数
通过ClassWizard在视图里为新增的菜单项【阻塞消息】和【非阻塞消息】添加消息响应函数。过程如图5和图6所示。
图5 菜单项【阻塞消息】的消息响应函数的设置
图6 菜单项【非阻塞消息】的消息响应函数的设置
2.4 添加响应函数代码
分别添加菜单项【消息阻塞】和【非消息阻塞】的消息响应函数的代码如下:
菜单项【消息阻塞】的消息响应函数
void CSenderView::OnEditBlockmessage()
{
// TOD
文档评论(0)