- 1、本文档共105页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 6.输出图形 GDI中常用的函数 MoveTo(hDC, x, y); //将画笔从当前位置移到(x,y)坐标 BOOL LineToEx(HDC hdc,int x,int y); //从当前点画直线到(x,y)坐标处 BOOL Rectangle(HDC hdc,int x1,int y1,int x2,int y2); //以(x1,y1)为左上角坐标,(x2,y2)为右下角坐标画矩形 BOOL RoundRect(HDC hdc,int x1,int y1,int x2,int y2,int h,int w); //以(x1,y1)为左上角坐标,(x2,y2)为右下角坐标画圆角矩形 BOOL Ellipse(HDC hdc,int x1,int y1,int x2,int y2); //以(x1,y1)为左上角坐标,(x2,y2)为右下角坐标画椭圆 * 7.输出文本 Windows程序的文本按图形方式输出。 输出文本时必须以像素为单位精确定位每一行的输出位置。常用文本输出函数有TextOut和DrawTex BOOL TextOut(HDC hdc,int x,int y,LPCTSTR lpString,int n); int DrawText(HDC hdc,LPCTSTR lpString,int n,LPRECT lpRect,UINT uFormat); * 7.输出文本 输出文本的字体设置问题 Windows提供了丰富的字体,不同字体的高度和宽度也不尽相同,函数GetTextMetrics能够获取当前字体的详细信息,如字符的完度、高度、字间距、行间距等信息。其原型如下: BOOL GetTextMetrics(HDC hdc,TEXTMETRICS tm); TEXTMETRICS是保存字体信息的数据结构,主要域如下: typedef struct tagTEXTMETRIC { LONG tmHeight; //字符高度 LONG tmExternalLeading; //行间距 LONG tmAveCharWidth; //字符的平均宽度 LONG tmMaxCharWidth; //最大字符宽度 LONG tmWeight; //字符的粗细度 BYTE tmCharSet; //字符集 …… } TEXTMETRIC; * 10.4.1 Windows程序的数据输出 【例10-2】 在例10-1的基础上,修改窗口函数中的WM_PAINT消息,让程序用默认画笔和画刷绘制一个矩形,然后创建蓝色画笔和红色网格画刷编绘制一个矩形和椭圆。并通过函数TextOut?分别用系统默认色彩和红色输出两行文本。 修改后的窗口函数WndProc?如下: * WndProc?函数的程序代码 LRESULT CALLBACK WndProc(…) { …… //同例10-1 HPEN hPen,hPenOld; //定义画笔 HBRUSH hBrush,HbruOld; //定义画刷 TEXTMETRIC tm; //定义tm用于获取字体信息 int x=10,y=150; switch(message) { //消息处理 case WM_CREATE: return 0 ; * case WM_PAINT: hPen=(HPEN)CreatePen(PS_SOLID,3,RGB(0,0,255)); //创建蓝色实线画笔,宽3像素点 hBrush=(HBRUSH)CreateHatchBrush(HS_CROSS,RGB(255,0,0)); //创建红色网格线的画刷 hdc = BeginPaint(hwnd,ps) ; GetClientRect(hwnd,rect) ; DrawText(hdc,TEXT(Hello,APIProgramming!),-1,rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; Rectangle(hdc,10,10,80,80); //用默认画笔和画刷绘制椭圆 //下面用SelectObject函数将创建的画笔和画刷选入Windows系统,选入之后 //所有的图形函数都会用新建的蓝色画笔画图,用红色的网格画刷填充图形 hPenOld=(HPEN)SelectObject(hdc,hPen); //选入新画笔,返回旧画笔句柄 HbruOld=(HBRUSH)SelectObject(hdc,hBrush); //选入新画刷,返回旧画刷句柄 Rectangle(hd
您可能关注的文档
最近下载
- IPD实施过程中的PMT(集成组合管理团队)运作管理.doc
- 《“三农”资金审计研究》.docx VIP
- 《钢筋混凝土用钢第1部分热轧光圆钢筋》(GB 1499. 1-2024 )新旧规范对比.pdf VIP
- 中华人民共和国爱国主义教育法主题班会教案.docx VIP
- 矿业权转让评估应用指南.docx
- 少儿英语关于颜色试讲15分钟PPT.ppt
- 2024阜阳市公安局招聘警务辅助人员历年考试试题.docx VIP
- 2024-2030年中国人才招聘行业运营模式及发展规划分析报告.docx
- 2022-2023学年山东省青岛市高一(上)期末化学试卷(含解析).pdf VIP
- 2024年内部审计工作计划范本(6篇) .pdf VIP
文档评论(0)