windows程序设计-第二讲:输出文本与绘图.docVIP

windows程序设计-第二讲:输出文本与绘图.doc

  1. 1、本文档共22页,可阅读全部内容。
  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文档。上传文档
查看更多
windows程序设计-第二讲:输出文本与绘图.doc

第二讲:输出文本与绘图 显示器为多个程序共享,只能在窗口的客户区内输出。 客户区是窗口中可以由程序任意书写和传递视觉信息的部分,通常显示了用户的某种交互需求 窗口大小不固定,窗口之间的覆盖,要求开发者更新对应的客户区 处理客户区的绘制,一般在WM_PAINT消息的处理过程中完成 GDI: Graphics Device Interface WM_PAINT消息 在WinMain()中的UpdateWindow()函数直接给窗口过程发送第一个WM_PAINT消息。 当窗口客户区域的一部分或全部变成“无效”,以致必须刷新时,系统将产生这个消息: 当窗口被最初创建时,整个客户区域都是无效的,第一个WM_PAINT消息通常是在WinMain()中调用UpdateWindow产生的; 当窗口的大小发生变化时,整个客户区域都变得无效; 当窗口区域的一部分不再被其他窗口遮盖之后,先前被遮盖的客户区域将变得无效; 设备描述表(DC:Device Context):是GDI内部保存的数据结构,指物理输出设备,与特定显示设备相关,其属性定义了被输出文本的颜色、文本的背景色、字体等。 设备描述表句柄是GDI函数的窗口“通行证”,有了这种设备内容句柄,程序员就能自如地在显示区域上绘图。Windows提供了几个GDI函数,用于将字符串输出到窗口的显示区域内 绘制的一般过程 获取设备描述表句柄方法一: 处理WM_PAINT消息,必须使用BeginPaint()和EndPaint(),BeginPaint()和EndPaint()必须成对出现。 在BeginPaint()调用中,它使用注册窗口类的WNDCLASS结构的hbrBackGround域中指定的刷子来删除无效区域背景,BeginPaint()调用使整个客户区域有效。 如果窗口过程不处理WM_PAINT消息,则必须把它传给DefWindowProc()来处理,DefWindowProc()函数依次调用BeginPaint()和EndPaint()以使整个客户区域有效。 绘图信息结构PAINSTRUCT: 在程序调用BeginPaint()时,WINDOWS填充该结构的各个字段,若fErase为0,则意味着在调用BeginPaint()时,BeginPaint()已经用刷子删除无效区域背景;RECT rcPaint字段定义了包围无效区域的最小矩形,GDI输出函数只能在这个矩形内输出。 typedef struct tagPAINTSTRUCT { HDC hdc ; BOOL fErase ; RECT rcPaint ; BOOL fRestore ; BOOL fIncUpdate ; BYTE rgbReserved[32] ; } PAINTSTRUCT ; 获取设备描述表句柄方法二: 在处理非WM_PAINT消息时,在客户区上做图获取设备描述表句柄的方法是GetDC()和ReleaseDC(),用GetDC()获取的设备描述表句柄,可在整个客户区上做图。 程序必须在处理单个消息期间,获取和释放设备描述表句柄。 系统字体:设备描述表的默认字体是系统字体,系统字体是Windows用来在标题条、菜单和对话框中显示文本串的字体。 字体大小:系统用结构TEXTMETRIC来描述字体的各个参数,用函数GetTextMetrics (hdc, &tm) 来取得当前字体的尺寸。结构TEXTMETRIC的定义如下: typedef struct tagTEXTMETRIC { LONG tmHeight ; LONG tmAscent ; LONG tmDescent ; LONG tmInternalLeading ; LONG tmExternalLeading ; LONG tmAveCharWidth ; LONG tmMaxCharWidth ; [other structure fields] } TEXTMETRIC, * PTEXTMETRIC ; tmAveCharWidth field is a weighted average of lowercase characters. tmMaxCharWidth is the width of the widest character in the font. The low bit of the tmPitchAndFamily field in the TEXTMETRIC structure is 1 for a

文档评论(0)

叶倾城 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档