- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
讲输出文本
第二讲 输出文本 何时绘制和怎样绘制显示区域 主要内容——GDI初步 绘制和更新 GDI 滚动条 三个程序 绘制和更新 显示区域是窗口中可以由程序任意书写和传递视觉信息的部分,通常显示了用户的某种交互需求 窗口大小不固定,窗口之间的覆盖,要求开发者更新对应的显示区域 处理客户区的绘制,一般在WM_PAINT消息的处理过程中完成 WM_PAINT消息 大多数Windows程序在WinMain中进入消息循环之前的初始化期间都要调用函数UpdateWindow。Windows利用这个机会给窗口消息处理程序发送第一个WM_PAINT消息。这个消息通知窗口消息处理程序:必须绘制显示区域。此后,窗口消息处理程序应在任何时刻都准备好处理其它WM_PAINT消息,必要的话,甚至重新绘制窗口的整个显示区域。 WM_PAINT消息的产生时机 用户对窗口操作(被覆盖的窗口重新可见、最大化窗口) 应用程序内部函数调用显式产生(改变背景、字体、滚动条位置) 在一些常规操作中,Windows会试图保存将被破坏的显示区域,以便以后恢复它,如果不能成功,则发送WM_PAINT消息。 一定会接受到WM_PAINT信息 在使用者移动窗口或显示窗口时,窗口中先前被隐藏的区域重新可见。 使用者改变窗口的大小(如果窗口类别样式有着CS_HREDRAW和CS_VREDRAW位标志的设定)。 程序使用ScrollWindow或ScrollDC函数滚动显示区域的一部分。 程序使用InvalidateRect或InvalidateRgn函数刻意产生WM_PAINT消息。 可能会接受到WM_PAINT信息 Windows擦除覆盖了部分窗口的对话框或消息框。 菜单下拉出来,然后被释放。 显示工具提示消息 保存显示区域 鼠标穿越显示区域。 图标拖过显示区域。 实验:用工具SPY++跟踪某一应用程序窗口的消息,具体使用,请参考MSDN。 为了优化速度,Windows采用了必要性原则,即除明确要求全部重画之外,只重新绘制被破坏的那一部分,这个部分一般是一个矩形区域,称为“无效区域”或“更新区域”。 也正因为客户区内无效区域的存在,才使得Windows将一个WM_PAINT消息放在应用程序的消息队列中。 Windows内部为每个窗口保存一个“绘图信息结构”(PAINTSTRUCT),这个结构包含了包围无效区域的最小矩形的坐标以及其它信息,这个矩形就叫做“无效矩形”,有时也称为“无效区域”。 由于Windows最后处理消息队列中的WM_PAINT消息,在两次处理间隔,可能会产生多个这样的消息,Windows会计算包含多个无效区域的最小和集,并更新队列中已经存在的WM_PAINT消息的绘图信息结构。 应用程序自己绘制 显式调用InvalidateRect 自定义绘制 调用ValidateRect,使无效区重新有效 实验:用SPY++工具,跟踪WORD中改变选定字符串的字体、颜色时或滚动条位置时,是否会产生WM_PAINT消息 注意,只有当对应窗口消息队列中没有WM_PAINT消息时, InvalidateRect才会产生WM_PAINT消息。 GDI Windows提供了几个GDI函数,用于将字符串输出到窗口的显示区域内 设备描述表句柄是GDI函数的窗口“通行证”,有了这种设备内容句柄,程序员就能自如地在显示区域上绘图 设备描述表(简称为“DC”)实际上是GDI内部保存的数据结构,包括一些图形化属性,如字体、文本颜色、文本背景色等。 绘制的一般过程 获取DC:方法一 处理WM_PAINT消息时,采用这种方法 BeginPaint 绘图信息结构 typedef struct tagPAINTSTRUCT { HDC hdc ; BOOL fErase ; RECT rcPaint ; BOOL fRestore ; BOOL fIncUpdate ; BYTE rgbReserved[32] ; } PAINTSTRUCT ; rcPaint 获取DC:方法二 hdc = GetDC (hwnd) ; 使用GDI函数 ReleaseDC (hwnd, hdc) ; ValidateRect (hwnd, NULL) ; 显示文本——TextOut TextOut (hdc, x, y, psText, iLength) ; 设备描述表的属性控制了被显示的字符串的特征,包括: 字体(文字大小、颜色、背景色等)、 映射模式、 裁减域等 MM_TEXT映像方式下的x坐标和y坐标 字符大小 程序可以调用GetTextMetrics取得字体大小,GetTextMetrics传回设
您可能关注的文档
- 讲函数的定义域.ppt
- 讲偏好和效用.ppt
- 讲从神权政治向人本政治的转型.ppt
- 讲关系数据理论版.ppt
- 讲利用等价无穷小量的代换求极限.ppt
- 讲企业组织结构设计.ppt
- 讲函数依赖公理体系新.ppt
- 讲关系数据库标准语言SQL.ppt
- 讲全球气候变化和气候类型的判断.ppt
- 讲功动能动能定理保守力的功势能.ppt
- 2025至2030中国婴儿拉式蚊帐行业发展现状及发展趋势与投资风险报告.docx
- 2025至2030中国半导体陶瓷靶行业项目调研及市场前景预测评估报告.docx
- 2025至2030中国果汁行业供需趋势及投资风险报告.docx
- 2025至2030中国双节距滚子链行业项目调研及市场前景预测评估报告.docx
- 2025至2030全球及中国电子电气中的cPDM行业项目调研及市场前景预测评估报告.docx
- 2025至2030工业风幕行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至20305G技术行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030钛合金行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国冶金工程施工总承包行业运营态势与投资前景调查研究报告.docx
- 2025至2030铁路IT支出行业产业运行态势及投资规划深度研究报告.docx
最近下载
- 2024年中国零售商调查报告—全球化视角之海外门店拓展.pdf VIP
- 八大特殊作业(八大危险作业)安全管理知识与规范培训(PPT132页).pptx VIP
- 银行会计岗位招聘笔试题(某大型集团公司)试题集解析.docx VIP
- 磅房计量考试试题及答案.doc VIP
- 绿化养护标准及收费办法.docx VIP
- 儿童闭塞性细支气管炎的诊断和治疗(2023版)专家共识解读课件.pptx VIP
- CTX-M耐药基因流行病学调查及耐药机制研究.pdf
- 中国共产党纪律处分条例测试题附答案+考试注意事项.doc VIP
- 财务会计与税务会计差异及协调探讨.doc VIP
- (高清版)DG∕TJ 08-2410-2022 文物和优秀历史建筑消防技术标准.docx VIP
文档评论(0)