首页 > 编程知识 正文

c语言如何得到桌面的位图,c语言输出彩色文字

时间:2023-05-04 01:42:49 阅读:143307 作者:2045

另一方面,当BeginPaint和EndPaint函数WM_PAINT事件发生时,APP应用程序开始呈现。 在绘制之前,必须调用BeginPaint函数通知Windows,告诉它当前程序必须使用显示器。 请安排一下。 执行BeginPaint函数后,将返回设备环境句柄,您可以使用该函数进行绘制。

绘制完成后,必须调用EndPaint函数通知Windows,告知绘制已完成。 可以进入下一个工作。

二、TextOut函数extOut函数可以在客户区输出文本,原型为:

booltextout(HDCHDC,//设备环境句柄int nXStart,//输出开始位置的x坐标int nYStart,//输出开始位置的y坐标LPCTSTR lpString,//输出的字符串int cbString //每次发生WM_PAINT事件时,都会重新绘制窗口。 在这种情况下,必须在窗口中输出文本。

Lesultcallbackwndproc(hwndhwnd,UINT message,WPARAM wParam,LPARAM lParam ) { HDC hdc; //设备环境句柄PAINTSTRUCT ps; //保存绘图环境信息switch(message ) { case WM_PAINT: //开始绘图,返回环境句柄HDC=beginpaint(hwnd,ps ); //输出文本textout(HDC,50,50,text ) ' Helloworld!' 、12; //结束绘制,释放环境句柄endpaint(hwnd,ps ); 返回0; case WM _ destroy : postquitmessage (0; 返回0; }returndefwindowproc(hwnd,message,wParam,lParam ); (三) DrawText函数TextOut在一个起点开始输出文本,可以定位准确,不能自动换行; DrawText可以在指定区域内输出文本,控制格式对齐方式(左、中间、右),还可以换行。

DrawText在内部也调用TextOut,但是进行了很多处理,例如不需要知道DrawText输出的字符。 更重要的是,从DrawText可以处理换行符但TextOut不能处理的角度来看,DrawText应该是一种更高级的用法,并且是基于TextOut的软件包。

DrawText的原型是

intdrawtext(HDCHDC,//设备环境句柄LPCTSTR lpString,//要输出的字符串int nCount,//字符串长度RECT,//指向矩形区域结构RECT的指针UINT uFormat //

2 )参数uFormat有4种值,可以任意组合。

DT_CALCRECT :此参数相对重要,可以让DrawText函数计算输出文本的大小。 如果输出文本包含多行,DrawText函数将使用lpRect定义的矩形宽度,并扩展矩形底部以适合输出文本的最后一行。 如果只有一行输出文本,DrawText函数会更改矩形的右边界以适合下面正文行中的最后一个字符。 发生上述情况之一。 DT_CENTER指定文本应水平居中显示。 DT_VCENTER :指定文本的垂直居中显示。 此标签仅在单行文本输出时有效,因此必须与DT_SINGLELINE结合使用。 文本显示在DT_SINGLELINE行中,换行符和换行符是连续的。 Lesultcallbackwndproc(hwndhwnd,UINT message,WPARAM wParam,LPARAM lParam ) { HDC hdc; //设备环境句柄PAINTSTRUCT ps; RECT rect; switch(message )//窗口呈现消息case WM _ paint : hdc=beginpaint (hwnd,ps ); gtclientrect(hwnd,rect ); dawtext(HDC,text ),' Helloworld!' 、-1、rect、DT_CENTER | DT_VCENTER; endpaint(hwnd,ps ); 返回0; //窗口销毁消息case WM _ destroy : postquitmessage (0; 返回0; }returndefwindowproc(hwnd,message,wParam,lParam ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。