网络软件设计7——windows消息说课.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 结合socket与windows 1、生成一个典型应用工程 2、添加头文件和库--winsock.h wsock32.lib 3、添加初始化和结束部分 4、设计:用户在菜单中选择了start项,服务器就启动起来 5、在资源编辑器中选择Menu 6、在菜单中增加一个选项 7、更改该菜单选项属性,ID号为IDM_START,和标题(caption)为Start 8、在WndProc中添加IDM_START,及处理函数StartServer() 9、在窗口关闭时,即对WM_DESTORY的处理中,加入关闭连接的过程 * 结合socket与windows 观察程序执行结果 问题1:当启动服务器服务后,窗口停止了响应 原因:程序在执行recv后阻塞,也阻塞了抓取程序的过程。 解决方法? 问题2:如果在通信部分使用非阻塞的select机制,服务器窗口仍然停止响应 原因:程序陷于select的循环中,无法回到GetMessage取得窗口消息 解决办法? * 学好Windows编程 勿在浮沙筑高台 但愿管中窥全豹 学好Windows编程应掌握的相关知识 C++ 操作系统原理,Windows系统原理 大量的系统库函数及功能 通过本课程能得到什么 虽然不要求大家掌握C++,课程也不介绍C++,但通过实际编写程序的过程,感受C++的一些特性。 可以了解Windows程序的一般结构,体会消息驱动的原理,减轻编写Windows程序的畏惧感。 接触并使用一些常用的调用 段景山 * 头文件的包含顺序是任意的吗? * GetMessage()--DispatchMessage() Register有注册的意思 网络软件设计 异步响应机制引入—— 窗口程序设计中的事件驱动Win32程序基本概念 制作 主讲 段景山 * 窗口 窗口 窗口的类型和要素 窗口背后的计算 * 窗口 窗口 与人交互的场所 图形化 窗口与应用程序 配置参数 不断交互 结果显示 窗口与进程 一一对应 一个进程打开多个窗口 一个窗口对应多个进程 (多个进程通过一个窗口与人交互) * 窗口类型与要素 窗口类型 Console 文字类型 Window 菜单+用户区域 Dialog Message Box 窗口要素 框架 菜单 按钮 滚动条 * 窗口背后的计算 窗口程序各不相同 本质区别是任务不同,计算不同 窗口的每个要件都有相应的程序支撑 任务的计算程序在哪里? 计算程序如何将窗口各部分统筹起来? 窗口+计算的程序框架将是怎样的? * Win32程序开发流程 .DLG .BMP .ICO .CUR .FON .RC .H .C .OBJ .LIB C runtime DLL Import .DEF RC compiler Text Editor Dialog Editor Image Editor Font Editor C Compiler LINKER .EXE .RES 开始之前 * 库函数 库函数的作用 用户不必关心窗口要件的代码 动态链接库 在执行时,才进行链接 增加程序的可移植性?? 节约内存?? Windows常用的库函数 C Runtimes--C库函数 LIBC.LIB MSVCRT.LIB Windows API GDI32.DLL USER32.DLL KERNEL32.DLL 其它 开始之前 注意:在运行程序时会遇 到一些库缺失的错误, 只需将这些库找到 放到windows系统目录下 * 头文件 windows.h stdafx.h 其它 开始之前 注意:当编译时出现找不到函数体错误时, 需要包含正确的头文件。 如果不知道该包含哪一个时, 1、可以在VC的include目录下查找 2、注意头文件的包含顺序?? * Windows 程序结构 以消息(事件)为基础,以消息(事件)驱动 (message based,event driven) 为什么窗口程序是事件驱动的 窗口程序的主要任务是人机交互 除非人主动结束任务。 人不断进行各种输入,计算机不断响应 程序以while循环为主体框架 形成“输入”-“响应”的程序结构 窗口程序是怎样进行消息驱动的 各种类型的“输入”,以消息格式存在 GetMessage()取走一个消息 需要响应消息和事件 对事件的响应,即事件驱动 DispatchMessage()处理消息 * Windows 程序结构 程序基本结构(算法) main() { while( GetMessage(msg)){ ProcessMessage(msg); } } 主函数 消息处理函数 ProcessMessage(msg) { switch(msg){ case MSG1: case MSG2: } } 事件 对比Wind

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档