Windows32的SDK编程 第六章.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  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文档。上传文档
查看更多
Windows32的SDK编程 第六章

06章 简单的字体变换 小雅以前刚学VC时感觉号称强大的VC一点儿也不方便,想要一行中有不同字体和颜色也不行。其实,所谓“不行”是自己还不会,会了之后就觉得VC实在很强大。 一、GetDC()函数与BeginPaint()函数的区别 在前面章节中说过,设备文本句柄的方法也可用GetDC()函数,网上和有的书上说BeginPaint()函数只能用于WM_PAINT,其它地方一般不用,而GetDC()函数不能用在WM_PAINT下,其它地方可以用。关于这一点,小雅将通过一个例子来说明,这个例子是在指定位置显示一行文字,用DrawText()可以实现,但这儿用TextOut()函数来实现更方便。 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { TCHAR szHello[64]=Wecome you to Http:///!; HDC hdc; switch (message) { case WM_PAINT: hdc = GetDC(hWnd); SetTextColor(hdc, 0x0000FF); SetBkColor(hdc, 0xCDFAFF); TextOut(hdc,30,20,szHello,(int)strlen(szHello)); //下面三行程序如果没有,窗口不正常地闪动 RECT rt; GetClientRect(hWnd, rt); ValidateRect(hWnd, rt); //让窗口有效区变得有效 ReleaseDC(hWnd, hdc); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } 在BeginPaint()函数的帮助上清楚地写着,这个函数将自动更新有效区。原来窗口只要发生任何改变,操作系统都会发送一个WM_PAINT消息来通知窗口刷新,在WM_PAINT中使用BeginPaint()函数,这个函数自动告诉操作系统窗口已经是必威体育精装版的了。而GetDC()没有这个功能,因此GetDC()一般不用于WM_PAINT消息中,如果一定要在WM_PAINT中使用,那就要用ValidateRect()函数来手动刷新窗口。 二、改变字体大小使文字整行显示 在一行中显示不下时,可以改变字体的大小来使一行能够显示。字体和后面章节中讲到的画笔、画刷的使用方法是一样的,都是调用SelectObject()函数来把字体句柄与设备文本句柄进行绑定,同时得到绑定前的字体句柄,用完之后,不能忘记把原来的字体句柄绑定回去,这样,后面如果还有程序的话,可以不受任何影响。 创建字体是用CreateFont()函数来实现的,这儿说的“创建字体”并不是自创一个欧体还是柳体,而是创建一个字体对象,其中包括文字的宽度、高度、角度等许多信息。创建的字体用完之后也一定要手动删除,删除字体用DeleteObject()函数。 下面的例子只改变宽度、高度和字体,当窗口改变大小时,用窗口的宽度除以字符串长度,得到单个字符的宽度,用窗口高度当作字符高度,当然上下左右都要空一点位置,这样比较美观。例子中rc.right-20和rc.bottom-20就是要上下左右都空10象素。 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; HFONT hFont, hFontOld; char *str=劝学网; int width, height; switch (message) { case WM_PAINT: RECT rc; hdc = BeginPaint(hWnd, ps); GetClientRect(hWnd

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档