- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络软件设计9——MFC
段景山 网络软件设计 MFC程序设计与Socket 制作 主讲 段景山 * MFC(Microsoft Foundation Class) C++?类? * MFC 用户程序结构 使用MFC建立的程序仍然是Win32程序 MFC用户程序结构与Win32 App有所不同 WinMain 事件 WndProc WinMain OnClick OnEvent OnXxx 。。。 事件 WndProc 循环与等待 * MFC 的消息映射(Message Map) VC集成开发环境利用MFC类库,对程序员屏蔽了WndProc()函数 程序员只需要关心设计什么消息,及消息的处理函数。至于消息是如何分发处理的,不需要关心。对程序员而言,消息映射似乎取代了WndProc()--窗口函数的作用 struct MSGMAP_ENTRY _messageEntries[ ] = { WM_CREATE, OnCreate, WM_COMMAND, OnCommand, WM_DESTORY, OnDestroy, } 消息 消息处理程序 * 例 用MFC新建一个工程 新建MFC APP 选择Dialog Based 选择连接windows socket库 观察建立工程后,给出的例程中,是否能看到WinMain、消息循环和消息处理函数? 没有看到是否就意味着程序中没有这些过程呢?原因何在? * 例 主题:实现界面交互(输入、输出) 制作界面控件——界面设计 Resource View 给控件增加成员变量——界面抽象?变量 Class Wizard 变量与界面交互——界面控制?对变量的操作 Updatedata() * 例 点击测试前 * 例 点击测试后 * 例 界面设计 * 用MFC制作一个服务器对话框 主要解决的问题 如何从EditBox中取得数据 如何在Edit Box中显示接收数据? 控件的抽象 可为Edit Box控件生成关联的成员变量——实现控件的抽象。 可根据数据类型决定变量类型,通过选择在member variables选择控件ID,然后 Add Variable Cstring--字符串 UINT--无符号整数 IDC_INPUT -m_input IDC_OUTPUT-m_output * 用MFC制作一个服务器对话框 控件的控制 用UpdateData来完成控件和关联值成员变量之间的数据交换——对抽象变量的操作落实到实际控件上 UpDateData(FALSE)从变量到控件--显示 UpDateData(TRUE)从控件到变量--获得 事件的驱动 触发UpDateData动作使用“测试”按钮的点击事件处理。 * 用MFC制作一个具有通信功能的对话框 任务描述 界面功能设计 数据结构设计 程序主流程设计 消息定制 消息处理(程序段) 检查流程是否符合任务要求 调试 * 用MFC制作一个具有通信功能的对话框 任务描述 利用MFC的控件实现简单的通信过程 要求: 面向连接服务器:同时为多条连接服务,接收数据,给出应答 可以设置服务器工作的端口 可以启动和停止服务 可以显示用户数据,并返回应答 可以同时为多个客户机提供服务 面向连接的客户机:与服务器建立连接,发送数据,显示应答 可以设置服务器工作的端口 可以启动与一个服务器连接,以后关闭连接后,可以再次启动与另一个服务器的连接 可以输入数据,传输给服务器 显示本地端口和服务器应答的数据 * 用MFC制作一个具有通信功能的对话框 无连接程序:可根据用户要求与不同的远端发送数据,并显示远端送来的数据。 可以设置本地端口 可以设置远方端口,输入数据传递到对方 显示远方端口和送来的数据 * 用MFC制作一个服务器对话框 面向连接的服务器 界面功能设计 可以设置服务器工作的端口 可以启动和停止服务 可以显示用户数据,并返回应答 可以同时为多个客户机提供服务 Static Text Edit Box Button 服务端口号 接收数据窗口 启动服务 停止服务 应答数据 * 用MFC制作一个服务器对话框 主流程设计 用户需要先填写端口号,和应答数据 然后启动服务 接收到的客户数据显示在接收数据框内 用户可以停止服务,服务器将不接受任何数据和连接 用户可以更改端口号或应答数据,再次启动服务 错误处理设计 如 用户如果不填端口号,就启动服务 用户不停止服务就再次启动服务 * 用MFC制作一个服务器对话框 数据结构设计 关键的变量: 主套接字: 可设计为全局变量 可作为对话框类的一个成员变量,让所有与对话框相关的函数(即所有对话框类的成员函数)使用--在class view中添加 从套接字的管理队列 本次任务可以依靠windows系统帮我们管理众多从套接字,故不作设计
文档评论(0)