GDI绘图基本步骤总结.docVIP

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

GDI绘图基本步骤总结 一、获得绘图的窗口句柄 方法(详细参数及其调用可以看考MSDN): 1、 HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName) 2、 HWND WindowFromPoint(POINT Point) 3、 BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) BOOL CALLBACK EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc,LPARAM lParam) BOOL CALLBACK EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam) BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) 二、由窗口句柄得到设备环境句柄HDC 方法:BeginPaint、GetWindowDC、GetDC。这些函数都需要步骤一中的HWND的句柄。调用这些函数后要释放句柄,相应的有EndPaint、ReleaseDC进行清理。 1、 采用BeginPaint获取HDC HDC hdc; PAINTSTRUCT ps;// 保存 hdc = ::BeginPaint( hwnd, ps ); // 此处添加绘图代码 ::EndPaint( hwnd, ps ); 说明:获得的hdc的有效区域仅限于客户区无效区域的设备环境句柄,不包括标题栏、边框等。 2、 采用GetWindowDC获取HDC HDC hdc = ::GetWindowDC( hwnd ); // 此处添加绘图代码 ::ReleaseDC( hwnd, hdc ); 说明:绘制区域是整个窗口(边框、标题栏、客户区的总和)。 3、 采用GetDC获取HDC HDC hdc = ::GetDC( hwnd ); // 此处添加绘图代码 ::ReleaseDC( hwnd, hdc ); 说明:获得的hdc的有效区域仅限于客户区有效区域的设备环境句柄,不包括标题栏、边框等。 三、图形绘制方法 1、 画笔CreatePen 绘画之前先选择画笔,画笔的功能主要是绘制边框,其函数原型如下: WINGDIAPI HPEN WINAPI CreatePen( __in int iStyle, // 画笔的类型,比如是实线,还是虚线等等。 __in int cWidth, // 线的宽度。 __in COLORREF color // 线的颜色。 ); // iStyle参数可选值: PS_SOLID = 0;// 实线 PS_DASH = 1;// 段线; 要求笔宽=1 PS_DOT = 2;// 点线; 要求笔宽=1 PS_DASHDOT = 3;// 线、点; 要求笔宽=1 PS_DASHDOTDOT = 4;// 线、点、点; 要求笔宽=1 PS_NULL = 5;// 不可见 PS_INSIDEFRAME = 6;// 实线; 但笔宽是向里扩展 返回值为画笔类型,SelectObject函数选中。选中后,返回原来画刷的句柄用来恢复时使用。图形绘制完毕后使用DeleteObject函数将其释放。 SelectObject函数说明: 函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。 函数原型:HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj); 参数: hdc:设备上下文环境的句柄。 hgdiobj:被选择的对象的句型,该指定对象必须由如下的函数创建。 位图:CreateBitmap, CreateBitmapIndirect, CreateCompatible Bitmap, CreateDIBitmap, CreateDIBsection(只有内存设备上下文环境可选择位图,并且在同一时刻只能一个设备上下文环境选择位图)。 画笔:CreateBrushIndirect, Create

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档