117.C语言实现桌面输出图片,桌面输出文字,桌面画线

通过获取窗口句柄,然后获取窗口DC,然后画图

  1 #include <Windows.h>
  2 #include <stdio.h>
  3
  4 //桌面画线
  5 void drawLine()
  6 {
  7     //获取控制台窗口
  8     //HWND hwnd = GetConsoleWindow();
  9     //获取输出
 10     //HDC hdc = GetDC(hwnd);
 11     //获取桌面窗口
 12     HWND hwnd = GetDesktopWindow();
 13     //获取输出
 14     HDC hdc = GetWindowDC(hwnd);
 15     HPEN hpen = CreatePen(PS_SOLID, 2, RGB(255, 255, 255));
 16     SelectObject(hdc, hpen);//选中笔
 17     while (1)
 18     {
 19         LineTo(hdc, 10, 10);
 20         Sleep(20);
 21         LineTo(hdc, 100, 100);
 22         Sleep(20);
 23         LineTo(hdc, 100, 300);
 24         Sleep(20);
 25         LineTo(hdc, 600, 300);
 26         Sleep(20);
 27         LineTo(hdc, 900, 300);
 28         Sleep(20);
 29         LineTo(hdc, 900, 900);
 30     }
 31
 32
 33     system("pause");
 34 }
 35
 36 //桌面或者控制台显示图片
 37 void drawPic()
 38 {
 39     //获取控制台窗口
 40     //HWND hwnd = GetConsoleWindow();
 41     //获取输出
 42     //HDC hdc = GetDC(hwnd);
 43     //获取桌面窗口
 44     HWND hwnd = GetDesktopWindow();
 45     //获取输出
 46     HDC hdc = GetWindowDC(hwnd);
 47     HBRUSH brush = CreateSolidBrush(RGB(255, 0, 0));
 48     SelectObject(hdc, brush);//选中笔
 49     while (1)
 50     {
 51         Rectangle(hdc, 50, 50, 400, 400);
 52         Sleep(20);
 53     }
 54     system("pause");
 55
 56 }
 57
 58 //桌面输出文字
 59 void drawText()
 60 {
 61     HWND hwnd = GetDesktopWindow();
 62     HDC hdc = GetWindowDC(hwnd);
 63     SetTextColor(hdc, RGB(0, 0, 255));
 64     //设置背景
 65     SetBkColor(hdc, RGB(255, 0, 0));
 66
 67     while (1)
 68     {
 69         HFONT hfont, hfontold;
 70         hfont = CreateFontA(
 71             180,
 72             140,
 73             0,
 74             0,
 75             FW_REGULAR,
 76             FALSE,
 77             FALSE,
 78             FALSE,
 79             GB2312_CHARSET,
 80             OUT_DEFAULT_PRECIS,
 81             CLIP_DEFAULT_PRECIS,
 82             PROOF_QUALITY,
 83             FIXED_PITCH | FF_MODERN,
 84             "隶书"
 85         );
 86
 87         //选择字体
 88         hfontold = SelectObject(hdc, hfont);
 89         //在区域输出文字
 90         /*RECT rctext;
 91         rctext.left = 10;
 92         rctext.top = 10;
 93         rctext.right = 800;
 94         rctext.bottom = 800;
 95         DrawTextA(hdc, "桌面文字输出测试", strlen("桌面文字输出测试"), &rctext, DT_CENTER);*/
 96         TextOutA(hdc, 0, 0, "桌面文字输出测试", strlen("桌面文字输出测试"));
 97         SelectObject(hdc, hfontold);
 98         Sleep(100);
 99     }
100 }
101
102 void main()
103 {
104     //drawPic();
105     //drawLine();
106     drawText();
107     system("pause");
108 }

原文地址:https://www.cnblogs.com/xiaochi/p/8526031.html

时间: 2024-11-10 07:39:29

117.C语言实现桌面输出图片,桌面输出文字,桌面画线的相关文章

找回误删除的UBUNTU16.04桌面壁纸图片,或把桌面背景图片另存。20161002

今天遇到一个小问题,之前下载并设置为桌面壁纸的一张图片在整理文件的时候不小心删除了.由于想不起来当时从哪里找到的图,所以就想把当前桌面壁纸重新保存.经网上查询,未见正确的保存方法,故写在此处备忘. 1.安装dconf-editor,可以直接在终端里运行apt install dconf-editor 2.打开dconf-editor的org/gnome/desktop/background,在右侧窗口可见picture-uri,即当前背景图片保存位置.我的壁纸是保存在/home/username

gnome3 修改桌面背景图片模式

修改背景图片,可以在 桌面右键 选择"修改壁纸",选择"background"(背景),这里没有设定背景图片模式. 可以在 “应用程序”->"工具">"优化工具",在 优化工具 中,选择 "桌面",就可以看到背景下有模式和背景目录.如下图: 灵感来自如何定制你的Linux桌面:Gnome 3中 看到优化工具的图片,就试着打开自己电脑系统中的优化工具,笔者就找到了 优化工具里面 有"桌面

捕捉整个桌面的图片

捕捉整个桌面的图片 但不捕捉自己这个窗体 procedure TForm2.Button3Click(Sender: TObject);var  Bitmap: Tbitmap;  BitmapCanvas: TCanvas;  dc: HDC;  DeskTopWidth,DeskTopHeight:Integer;begin  DeskTopWidth:= Screen.Width;  DeskTopHeight:=Screen.Height; Panel1.Width:=DeskTopWi

VC++ GUI桌面程序添加控制台调试输出

VC++ GUI桌面程序添加控制台调试输出 GUI控制台 GUI桌面应用程序添加控制台只需按如下步骤在代码中添加即可: 1. 第一步:引入头文件 #include "stdio.h" 2.第二步:在程序开始部分添加如下代码 AllocConsole(); freopen("CONOUT$", "w", stdout);//开启中文控制台输出支持 3. 第三步:程序结束部分添加 FreeConsole(); //释放 原文地址:https://ww

移除VMware View桌面中孤立的主机与桌面池

移除VMware View桌面中孤立的主机与桌面池 在使用VMware View桌面的过程中,如果由于多种因为(例如重新安装了vCenter Server)导致View桌面池丢失,想要在View Administrator中删除这些孤立的虚拟机与桌面池,可以使用如下的方法. 图1-1 停留在"正在删除" 图1-2 停止在"正在删除" 1 登录View Composer删除孤立虚拟机 进入View Composer的服务器,打开View Composer安装位置,复制

烂泥:学习ubuntu远程桌面(二):远程桌面会话管理

本文首发于烂泥行天下 在上一篇文章中,我们讲解了如何给ubuntu安装远程桌面及其配置,这篇文章我们再来讲解下有关ubuntu远程桌面会话的问题. 一.问题描述 在我们使用ubuntu远程桌面时,会经常遇到这样的问题.在连接远程桌面时,我打开的是会话A,我在会话A下处理一些工作的事情.由于自己不小心把这个远程桌面给关闭了,或者今天工作完毕关闭该远程桌面会话.等再进行连接远程桌面时,发现ubuntu会给出一个新的远程桌面会话B,而不是我们刚刚连接过的那个会话A,或者是昨天连接的那个会话A. 以上这

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下代码 import sys reload(sys) sys.setdefaultencoding('utf-8') 2.确认你ubuntu系统环境下拥有的中文字体文件: 在终端运行命令"fc-list :lang=zh",得到自己系统的中文字体 命令输出如下: /usr/share/fon

用PHP和MySQL保存和输出图片

mysql可以直接保存二进制的数据,数据类型是blob.   通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之    处就在于两者所需要保存的数据量不同.MySQL数据库使用专门的字段来保存大容量的数据,数据    类型为BLOB.        MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可    变数量的数据.BLOB具有四种类型,分别是TINYBLOB,BLOB,  MEDIUMBLOB  和LONGBLOB,区别在于