【起因】

  最近碰到一个项目,需要在电脑左面显示一些信息,因此在网上找了一些资料,成功实现在桌面绘制信息。

【代码】

#include "stdafx.h"
#include <iostream>
#include<windows.h>
#include <io.h>
#include <map>
#include <fstream>
#include <atlimage.h>
using namespace std; void draw()
{
// 获取一个可供画图的DC,我这里就直接用桌面算了
HDC hdc = GetWindowDC(GetDesktopWindow()); // 创建红色1像素宽度的实线画笔
HPEN hpen1 = CreatePen(PS_SOLID, , RGB(, , ));
// 创建绿色5像素宽度的破折画笔,如果你想创建其他种类的画笔请参阅MSDN
HPEN hpen2 = CreatePen(PS_DASH, , RGB(, , ));
// 创建一个实体蓝色画刷
HBRUSH hbrush1 = CreateSolidBrush(RGB(, , ));
// 创造一个透明的画刷,如果你想创建其他种类的画刷请参阅MSDN
HBRUSH hbrush2 = (HBRUSH)GetStockObject(NULL_BRUSH); // 将hpen1和hbrush1选进HDC,并保存HDC原来的画笔和画刷
HPEN hpen_old = (HPEN)SelectObject(hdc, hpen1);
HBRUSH hbrush_old = (HBRUSH)SelectObject(hdc, hbrush1); // 在(40,30)处画一个宽200像素,高50像素的矩形
Rectangle(hdc, , , + , + ); // 换hpen1和hbrush1,然后在(40,100)处也画一个矩形,看看有何差别
SelectObject(hdc, hpen2);
SelectObject(hdc, hbrush2);
Rectangle(hdc, , , + , + ); // 画个椭圆看看
Ellipse(hdc, , , + , + ); // 画个(0,600)到(800,0)的直线看看
MoveToEx(hdc, , , NULL);
LineTo(hdc, , ); // 在(700,500)处画个黄点,不过这个点只有一像素大小,你细细的看才能找到
SetPixel(hdc, , , RGB(, , ));
//文字,
//参数:桌面句柄,XY坐标,文字,文字宽度
TextOutA(hdc, , , "哈哈哈", );
// 恢复原来的画笔和画刷
SelectObject(hdc, hpen_old);
SelectObject(hdc, hbrush_old);
} int main()
{
while (true)
{
draw();
Sleep();
}
system("prase");
}

C++在WINdow桌面绘制文字图形的更多相关文章

  1. IOS开发 图形绘制,绘制线条,矩形,和垂直和居中绘制文字

    概述 吐槽下IOS下 的图形绘图,代码冗长,不得不自己重新封装方法.整理形成本文. 绘制线 // 绘制直线 + (void)toDrawLineFromX:(CGFloat)x1 Y:(CGFloat ...

  2. [Swift通天遁地]八、媒体与动画-(5)使用开源类库绘制文字、图形、图像、图表、SVG(可缩放矢量图形)

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. IOS 绘制基本图形(画文字、图片水印)

    - (void)drawRect:(CGRect)rect { // Drawing code // [self test]; // 1.加载图片到内存中 UIImage *image = [UIIm ...

  4. ubuntu设置开机默认进入字符界面方法 ubuntu 12.04 桌面版关闭图形界面(转)

    ubuntu 12.04 桌面版关闭图形界面 注意]改GRUB 的配置文件(不建议直接改 grub.conf) file:/etc/default/grub GRUB_CMDLINE_LINUX_DE ...

  5. 利用QPainter绘制各种图形(Shape, Pen 宽带,颜色,风格,Cap,Join,刷子)

    利用QPainter绘制各种图形 Qt的二维图形引擎是基于QPainter类的.QPainter既可以绘制几何形状(点.线.矩形.椭圆.弧形.弦形.饼状图.多边形和贝塞尔曲线),也可以绘制像素映射.图 ...

  6. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

  7. css绘制特殊图形,meida查询,display inline-box间隙问题以及calc()函数

    本文同时发表于本人个人网站 www.yaoxiaowen.com 距离上一篇文章已经一个月了,相比于写代码,发现写文章的确是更需要坚持的事情.言归正传,梳理一下这一个月来,在写ife任务时,有必要记录 ...

  8. [ javascript canvas isPointInPath(x,y) 判断点是否在最后绘制的图形中 ] javascript canvas isPointInPath(x,y) 判断点是否在最后绘制的图形中方法演示 效果之三

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

  9. iOS开发UI篇—Quartz2D使用(绘制基本图形)

    iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 ...

随机推荐

  1. Celery-4.1 用户指南: Application(应用)

    Application Celery 库在使用之前必须初始化,一个celery实例被称为一个应用(或者缩写 app). Celery 应用是线程安全的,所以多个不同配置.不同组件.不同任务的 应用可以 ...

  2. 2011-03-17免Oracle客户端连远程Oracle的方法

    1.http://www.oracle.com/technetwork/topics/winsoft-085727.html上下载对应版本的instanctclinet zip包 34M 解压后92M ...

  3. 问题:不支持Dictionary;结果:在Web Service中傳送Dictionary

    在Web Service中傳送Dictionary 有個需求,想在Web Service中傳遞Dictionary<string, string>參數,例如: 排版顯示純文字 [WebMe ...

  4. 【Android 多媒体应用】使用MediaRecoder录制,MediaPlayer播放音频数据

    1.MainActivity.java import android.annotation.TargetApi; import android.app.Activity; import android ...

  5. ffmpeg一揽子

    avformat_alloc_output_context2().在基于FFmpeg的视音频编码器程序中,该函数通常是第一个调用的函数(除了组件注册函数av_register_all()).avfor ...

  6. maven手动安装oracle驱动到仓库

    1. 2.打开http://maven.jahia.org/maven2/一步步打开找到 我需要的版本 https://devtools.jahia.com/nexus/content/groups/ ...

  7. findall 、 search的使用

  8. Lucene打分公式的数学推导

    原文出自:http://www.cnblogs.com/forfuture1978/archive/2010/03/07/1680007.html 在进行Lucene的搜索过程解析之前,有必要单独的一 ...

  9. day35 02-Hibernate持久化对象状态及状态转换

    hibernate内置有一个c3p0,不用引入c3p0的jar包也行. 现在其实可以不用去创建表和实体类.因为hibernate可以自动帮我们生成.只要把映射建好了它就可以自动帮我们生成. 创建实体类 ...

  10. C++获取电脑上连接的多个摄像头名称与编号

    #include<iostream>#include "strmif.h"#include <initguid.h>#include<vector&g ...