- 0
- 0
- 约2.79千字
- 约 21页
- 2017-05-15 发布于贵州
- 举报
Windows序设计课件第七章
* 新的消息与 API 新的消息 WM_TIMER、WM_CONTEXTMENU、WM_SYSCOMMAND、WM_SIZE 新的API SetTimer、KillTimer、GetLocalTime、 GetSystemMenu、AppendMenu、TrackPopupMenu SetWindowPos * 第七讲Windows界面编程-3 主讲:何军 2011-秋季学期 * Refreshing GDI与设备环境 基本的绘图函数 * Outline Windows 界面编程的综合实验 Windows DC使用的双缓冲技术 * 1. 界面编程综合实验 * 1.1 实验要求 带有指针的能够正常运行的时钟 时针、分针、秒针 * 1.2 关键问题 什么因素驱动时钟运行? 如何绘制时钟表面? 如何动态刷新时钟的秒针、分针、时针? * 1.2 关键问题 什么因素驱动时钟运行? Windows消息——WM_TIMER,定时器消息 Windows的系统时间 * 1.2 关键问题 如何绘制时钟表面? 为了方便绘制圆形表盘,将坐标映射方式改为MM_ISOTROPIC 设置坐标原点为客户区中心位置 * 1.2 关键问题 如何动态刷新时钟的秒针、分针、时针? 屏幕全部重新绘制 仅绘制变更的部分 * 1.3 关键代码 定时器消息 #define IDT_CLOCK 1 // 创建定时器 ::SetTimer(hWnd, IDT_CLOCK, 1000, NULL); case WM_TIMER: { // 下面填写定时器代码 return 0; } * 1.3 关键代码 改变坐标映射 void SetIsotropic(HDC hdc, int cx, int cy) { ::SetMapMode(hdc, MM_ISOTROPIC); ::SetWindowExtEx(hdc, 1000, 1000, NULL); ::SetViewportExtEx(hdc, cx, -cy, NULL); ::SetViewportOrgEx(hdc, cx/2, cy/2, NULL); } // 建立坐标系 HDC hdc = ::GetDC(hWnd); SetIsotropic(hdc, s_cxClient, s_cyClient); * 1.3 关键代码 绘制表针 void DrawHand(HDC hdc, int nLength, int nWidth, int nDegrees, COLORREF clrColor) { // 将角度nDegrees转化成弧度. 2*3.1415926/360 == 0.0174533 double nRadians = (double)nDegrees*0.0174533; // 计算坐标 POINT pt[2]; pt[0].x = (int)(nLength*sin(nRadians)); pt[0].y = (int)(nLength*cos(nRadians)); pt[1].x = -pt[0].x/5; pt[1].y = -pt[0].y/5; // 创建画笔,并选如DC结构中 HPEN hPen = ::CreatePen(PS_SOLID, nWidth, clrColor); HPEN hOldPen = (HPEN)::SelectObject(hdc, hPen); // 画线 ::MoveToEx(hdc, pt[0].x, pt[0].y, NULL); ::LineTo(hdc, pt[1].x, pt[1].y); ::SelectObject(hdc, hOldPen); ::DeleteObject(hPen); } DrawHand(hdc, 400, 1, time.wSecond*6, RGB(0, 0, 0)); DrawHand(hdc, 400, 6, time.wMinute*6, RGB(0, 0, 0)); DrawHand(hdc, 200, 8, time.wHour*30 + time.wMinute/2, RGB(0, 0, 0)); 秒针 分针 时针 * 1.3 关键代码 动态刷新时钟指针 wcex.hbrBackground = (HBRUSH)(COLOR_3DFACE +1); case WM_TIMER: { // 以COLOR_3DFACE为背景色就可以擦除指针了(因为窗口的背景色也是COLOR_3DFACE) COLORREF crfColor = ::GetSysCo
您可能关注的文档
- Windows序设计方法(一).ppt
- windows序设计第九讲资源.ppt
- windows序设计第六讲钩子(Hook).ppt
- windows序设计第十讲对话框.ppt
- Windows序设计课件第一章.ppt
- Windows序设计课件第六章.ppt
- Windows序设计课件第四章.ppt
- Windows序运行原理.ppt
- windows息机制.doc
- Windows息编程.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 2026年妇幼健康信息化建设工作计划.docx VIP
- TSG 11-2020锅炉安全技术规程.docx VIP
- 《AIGC应用实战:写作、绘图、视频制作、直播》-课件全套 王翎子 第1--9章 认识AIGC ---即创的使用方法.pptx VIP
- 隧道施工及质量控制培训课件.ppt VIP
- 江苏省无锡市近三年数学中考考前考点分析及易错点巩固.docx VIP
- 公司职位说明书与绩效考核范本全套体系.doc VIP
- 建筑公司项目部及公司各岗位绩效考核表.pdf VIP
- 窗帘采购安装项目 投标方案(技术方案).docx
- JCT 2459-2018 陶粒泡沫混凝土.pdf VIP
- 配电室安全操作规程及管理规范.docx VIP
原创力文档

文档评论(0)