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

 #include <Windows.h>
#include <stdio.h> //桌面画线
void drawLine()
{
//获取控制台窗口
//HWND hwnd = GetConsoleWindow();
//获取输出
//HDC hdc = GetDC(hwnd);
//获取桌面窗口
HWND hwnd = GetDesktopWindow();
//获取输出
HDC hdc = GetWindowDC(hwnd);
HPEN hpen = CreatePen(PS_SOLID, , RGB(, , ));
SelectObject(hdc, hpen);//选中笔
while ()
{
LineTo(hdc, , );
Sleep();
LineTo(hdc, , );
Sleep();
LineTo(hdc, , );
Sleep();
LineTo(hdc, , );
Sleep();
LineTo(hdc, , );
Sleep();
LineTo(hdc, , );
} system("pause");
} //桌面或者控制台显示图片
void drawPic()
{
//获取控制台窗口
//HWND hwnd = GetConsoleWindow();
//获取输出
//HDC hdc = GetDC(hwnd);
//获取桌面窗口
HWND hwnd = GetDesktopWindow();
//获取输出
HDC hdc = GetWindowDC(hwnd);
HBRUSH brush = CreateSolidBrush(RGB(, , ));
SelectObject(hdc, brush);//选中笔
while ()
{
Rectangle(hdc, , , , );
Sleep();
}
system("pause"); } //桌面输出文字
void drawText()
{
HWND hwnd = GetDesktopWindow();
HDC hdc = GetWindowDC(hwnd);
SetTextColor(hdc, RGB(, , ));
//设置背景
SetBkColor(hdc, RGB(, , )); while ()
{
HFONT hfont, hfontold;
hfont = CreateFontA(
,
,
,
,
FW_REGULAR,
FALSE,
FALSE,
FALSE,
GB2312_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,
FIXED_PITCH | FF_MODERN,
"隶书"
); //选择字体
hfontold = SelectObject(hdc, hfont);
//在区域输出文字
/*RECT rctext;
rctext.left = 10;
rctext.top = 10;
rctext.right = 800;
rctext.bottom = 800;
DrawTextA(hdc, "桌面文字输出测试", strlen("桌面文字输出测试"), &rctext, DT_CENTER);*/
TextOutA(hdc, , , "桌面文字输出测试", strlen("桌面文字输出测试"));
SelectObject(hdc, hfontold);
Sleep();
}
} void main()
{
//drawPic();
//drawLine();
drawText();
system("pause");
}
  • 桌面绘图

     #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h> void main()
    {
    HWND hwnd = GetConsoleWindow();
    HDC hdc = GetDC(hwnd);
    //创建兼容DC
    HDC memdc = CreateCompatibleDC();
    //载入位图
    HBITMAP bit = LoadImageA(hwnd, "C:\\Users\\Administrator\\Desktop\\1.bmp", IMAGE_BITMAP, , , LR_LOADFROMFILE | LR_CREATEDIBSECTION);
    //位图有兼容DC绑定
    SelectObject(memdc, bit);
    //兼容DC与hdc绑定
    BitBlt(hdc, , , , , memdc, , , SRCCOPY); system("pause");
    }

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

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

    今天遇到一个小问题,之前下载并设置为桌面壁纸的一张图片在整理文件的时候不小心删除了.由于想不起来当时从哪里找到的图,所以就想把当前桌面壁纸重新保存.经网上查询,未见正确的保存方法,故写在此处备忘. 1 ...

  2. LODOP直接用base64码输出图片

    Lodop中的ADD_PRINT_IMAGE,也可以直接输出base64码图片,不用加img标签,如果加了img标签,会被当做超文本对待,受浏览器引擎解析的影响. 什么时候使用base64码直接输出比 ...

  3. 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)

    javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...

  4. Java给图片和PDF文件添加水印(图片水印和文字水印)

    有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...

  5. C#调用R语言输出图片

    参考:http://rdotnet.codeplex.com/documentation   REngine.SetEnvironmentVariables(); REngine engine = R ...

  6. C#获取桌面壁纸图片的路径(Desktop Wallpaper)

    原文 C#获取桌面壁纸图片的路径(Desktop Wallpaper) 利用 Windows 的 API 获取桌面壁纸的实际路径,使用的是 SystemParametersInfo 这个API,此AP ...

  7. gnome3 修改桌面背景图片模式

    修改背景图片,可以在 桌面右键 选择"修改壁纸",选择"background"(背景),这里没有设定背景图片模式. 可以在 “应用程序”->"工 ...

  8. 下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片 将图片的二进制字节字符串在HTML页面以图片形式输出 asp.net 文件 操作方法

    下载远程(第三方服务器)文件.图片,保存到本地(服务器)的方法.保存抓取远程文件.图片   将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 ...

  9. 请求一个action,将图片的二进制字节字符串在视图页面以图片形式输出

    有些时候需要将二进制图片字节在发送浏览器以图片形式显示: 下面是一些示例代码: 控制器: /// <summary> /// 将图片的二进制字节字符串在视图页面以图片形式输出 /// &l ...

随机推荐

  1. HIVE JOIN_1

    HIVE JOIN 概述 Hive join的实现包含了: Common (Reduce-side) Join Broadcast (Map-side) Join Bucket Map Join So ...

  2. powerdesigner导出sql

    http://jingyan.baidu.com/article/7082dc1c48960ee40a89bd38.html 生成注释 http://wangjingyi.iteye.com/blog ...

  3. 使用java自带的xml解析器解析xml

    使用java自带的xml解析器解析xml,其实我不推荐,可以用Dom解析,或其他的方式,因为Java自带的解析器使用不但麻烦,且还有bug出现. 它要求,针对不同的xml(结构不同),必须写对应的ha ...

  4. 简单学习Python之路1

    如何在cmd中打开文件:先用win+R打开cmd界面,在已知到你自己要打开文件的地址之后比如(F:\workspace),你先按F:,然后在用cd workspace进入workspace的文件中,然 ...

  5. 学习参考《矩阵分析与应用(第二版)张贤达》PDF

    要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握矩阵及其应用. 学习<矩阵分析与应用第2版>时,会发现总结了大量线性代数的知识,主要是给工科生用的.归纳了不少论文中的解法 ...

  6. Swift学习笔记(1)--基本语法

    1.分号; 1>Swift不要求每个语句后面跟一个分号作为语句结束的标识,如果加上也可以,看个人喜好 2>在一行中写了两句执行语句,需要用分号隔开,比如 let x = 0; printl ...

  7. SSH框架的多表查询(方法二)

     必须声明本文章==>http://www.cnblogs.com/zhu520/p/7773133.html  一:在前一个方法(http://www.cnblogs.com/zhu520/p ...

  8. 【Codeforces Round #424 (Div. 2) B】Keyboard Layouts

    [Link]:http://codeforces.com/contest/831/problem/B [Description] 两个键盘的字母的位置不一样; 数字键的位置一样; 告诉你第一个键盘按某 ...

  9. 【Uva 1631】Locker

    [Link]: [Description] 有一个n(n≤1000)位密码锁,每位都是0-9,可以循环旋转.每次可以让1-3个相邻 数字同时往上或者往下转一格.例如,567890->567901 ...

  10. 使用DbUtils实现增删改查——ResultSetHandler 接口的实现类

    在上一篇文章中<使用DbUtils实现增删改查>,发现运行runner.query()这行代码时.须要自己去处理查询到的结果集,比較麻烦.这行代码的原型是: public Object q ...