OO-Win编程(10-4)精品.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OO-Win编程(10-4)精品

设计方法的小结 按照文挡视窗模式组织 业务数据对象 ? 文挡类成员 人机交互对象 ? 视窗类成员 符合SRP原则 符合Windows消息驱动方式 编制消息响应函数 利用消息进行控制 不直接调用消息响应函数 OOP 的特点 提供服务,来迎合、满足使用者的需求 练习题(4-2) 扩展例10-4 的功能 提供图元的删除功能 提供图元的移动功能 为图元的输出设置颜色设置功能,支持用不同颜色显示点、线和多面 Windows 多任务多用户多窗口系统 工作方式 同步方式:dos系统 异步方式:多任务系统 实现需求 多任务并行、多窗口并行 4.1 Windows 软件结构 消息驱动体系 运行中发生的各种事件,以消息的形式通知系统 应用程序接收消息,提交给程序中的各个窗口 窗口处理 每个窗口配备一个窗口函数,负责处理收到的消息 交互控制手段 Windows 系统消息(数百条) API 函数 上千个系统函数与专用数据结构 消息驱动体系 键盘输入 鼠标输入 状态改变 系统消息队列 应用程序队列 应用程序队列 应用程序队列 窗口 窗口 窗口 窗口 窗口 窗口 窗口 窗口 窗口 消息循环 消息循环 消息循环 Windows 应用程序 应用程序 应用程序框架 程序开发过程 源程序 *.C/*.CPP 目标程序 *.OBJ 可执行文件 *.EXE 可执行程序 *.EXE 资源描述 *.RC 库函数 *.LIB 模块定义 *.DEF 资源文件 *.RES 编译器 连接器 资源连接 开发工具 资源编译 源程序结构 WinMain 的程序结构 应用程序入口 WinMain( 程序实例句柄,上一程序实例句柄, 命令行参数,显示状态 ) { if( 是首次实例 ) 登记主窗口所属的窗口类; 创建主窗口; 显示主窗口; 消息循环; } 窗口的登记、创建与显示 WNDCLASS ws; ws.lpszClassName = 窗口类名; ws.lpfnWndProc = 窗口函数名; /* 给定的窗口函数负责该类窗口的消息响应 */ …… RegisterClass( ws ); /* 登记窗口类 */ 窗口句柄 = CreateWindow(窗口类名,标题, …); ShowWindow(窗口句柄,状态); /* 创建与显示 */ /* 窗口句柄是窗口的唯一标识 */ 消息循环 MSG msg; /* 消息结构 */ while( GetMessage(msg,0,0,0) ) { /* 从消息队列取消息 */ TranslateMessage( msg ); /* 翻译消息 */ DispatchMessage( msg ); /* 发送消息给指定窗口函数 */ } /* 收到消息 WM_QUIT 时退出循环 例4-1:窗口函数 LRESULT CALLBACK 窗口函数 ( hWnd,msg,wParam,lParam ) { int x = LOWORD( lParam ); // 获得鼠标位置 int y = HIWORD( lParam ); HDC hDC = GetDC( hWnd ); // 获取设备句柄 switch( msg ) { case WM_LBUTTONDOWN: // 鼠标按下 TextOut(hDC, 10, 10,“Hello”, 5); // 文本输出 MoveTo(hDC, x, y); break; // 设置当前点 case WM_LBUTTONUP: // 鼠标释放 LineTo(hDC, x, y); break; // 画线至指定点 } ReleaseDC(hWnd, hDC); // 释放设备句柄 } // 识别收到的各种消息,完成消息响应 4.2 MFC程序设计引论 基本方法: 利用 OO 技术支持 Windows 编程 Windows 应用程序结构的分析 主程序结构 消息循环不变 首画面可变(各种窗口、对话框) 窗口程序结构 创建、窗口函数结构不变 消息响应可变 符合文档视窗 Windows系统的分析 1. 对象: 各种窗口、各种设备和 GDI 对象 2. 对象通信: Windows 消息、API 函数调用 3. 消息传递: 调用窗口函数处理 Windows 消息 4. 消息响应: 窗口函数 case 语句的各个分支 设备和 GDI 对象的 API 函数 MFC设计思想:提供程序基本框架 应用程序类 CWinAp

文档评论(0)

bodkd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档