C++控制台与GDI+(桌面上显示图片)

原创 2015年07月08日 18:13:07

C++控制台与GDI+(桌面上显示图片)

VC6.0过时了,GDI+也算是过时的产品了,不过对于初学者来说还是蛮有学习意义的,而且网上存在很多GDI配置教程稍显杂乱,重点是很少有结合C++控制台来写的,正好最近需要做个demo需要用到这一块,可是很多知识都忘了。个人感觉写一篇博客确实有必要把能够在C++控制台下正常运行的程序编译出来的过程记录一下。

下面说一下GDI+的配置

GDI+配置

1、下载gdi+库文件,http://download.csdn.net/detail/s2392735818/8881167
免积分下载哦。
2、VC6.0中,打开Tools->Options->Directories,分别将GDIPlus文件夹下面的Includes文件夹,lib文件夹分别添加进去。
VS2010的配置可以看这个http://www.cnblogs.com/it20120227/archive/2011/12/31/2370903.html
3、接下来新建一个C++ Source File文件命名为paint.cpp,编译的时候,VC6.0会自动生成一个工程文件,下面需要再新建一个stdafx.h文件。
4、stdafx.h文件中需要添加

#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif

这一块代码是为了防止VC6无法识别ULONG_PTR类型

然后在stdafx.h中加入下面的代码,为当前工程引入头文件和库文件

#include <Gdiplus.h>
#pragma comment(lib, "gdiplus.lib")

5、接下来paint.cpp中添加全局变量

Gdiplus::GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;

和GDIPlus库命名空间

using namespace Gdiplus;

好了,GDIPlus的配置到此结束,接下来介绍GDIPlus的使用。

GDIPlus使用与图片显示的实现

1、主函数中添加GDIPlus开启函数

Gdiplus::GdiplusStartup(&m_pGdiToken, &m_gdiplusStartupInput, NULL);

记住结束的时候需要执行GDIPlus关闭函数

Gdiplus::GdiplusShutdown(m_pGdiToken);

2、由于程序需要在桌面上直接显示图片,因此需要获得桌面句柄,在paint.cpp中加入头文件

#include<windows.h>

3、下面就是具体的实现过程了,直接贴代码

    //获取桌面句柄
    HWND m_hWnd = ::GetDesktopWindow();

    //在内存中建立一个Image的派生类Bitmap对象做为"画布"
    Bitmap memBitmap(512,512);

    Graphics  memGr(&memBitmap);

    //这里可以通过memGr在memBitmap上绘制多个图元
    Image* pimage=NULL;
    pimage=Image::FromFile(L"shirt.png");
    int w = 601; //这里是"shirt.png"的宽度
    int h = 672; //这里是"shirt.png"的高度
    memGr.DrawImage(pimage,0,0,0,0,w,h,UnitPixel);
    delete pimage;
    pimage=NULL;

    HDC m_hDC = ::GetDC(0);//获取屏幕句柄
    Graphics gr(m_hDC);
    gr.DrawImage(&memBitmap,0,0);
    ::ReleaseDC(m_hWnd,m_hDC);

    Gdiplus::GdiplusShutdown(m_pGdiToken);

    system("pause");

上述仅供学习使用,当然,内容也不是很完美,抛砖引玉,能够为大家提供帮助,定感荣幸。:)

不一样的控制台程序-----在控制台中输出图片

不一样的控制台程序-----在控制台中输出图片 2010-11-21 15:53:29 标签:控制台 Console C/C++ 窗口 休闲 职场 原创作品,允许转载,转载时请务必以超链接...
  • haiross
  • haiross
  • 2014年08月26日 13:58
  • 2520

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

控制台程序使用GDI+

由于需要得到图片的宽、高以及所占的字节数大小,所以上网百度了一下,发现GDI+可以很简单的满足我的功能。以下结合自己的程序,介绍下GDI+的使用方法。 1、包含GDI+的头文件、库文件以及命名空间 ...

GDI实现控制台绘图

利用Windows API函数,可在控制台Console上进行图形的绘制。 /** 创建绘制环境 */     HDC memDC = GetDC(GetConsoleWindow());  ...
  • yanfk
  • yanfk
  • 2016年03月27日 14:39
  • 198

C++将一个图片显示到窗口里面

// Test2.cpp : 定义控制台应用程序的入口点。 // #pragma comment(lib,"user32") #pragma comment(lib,"gdi32") ...

c++ 在控制台里用字符拼成图片

读取一个文件,用 在屏幕上输出各种字符的方法,拼出这张图片

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C++(MFC)控件上显示图片

一直不清楚怎么设置图片,后来查了很多资料才明白。 例如下面的:  1) 首先是是设置图片ID:        在.rc文件中寻找: IDB_BITMAP_BTN_RT       BITMAP...

c++截取屏幕图片并保存(函数代码实现)

//获取桌面窗口的CDC CDC *pdeskdc = GetDesktopWindow()->GetDC(); CRect re; //获取窗口的大小 GetDesktopWindow(...
  • ghevinn
  • ghevinn
  • 2014年06月03日 17:18
  • 7443
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++控制台与GDI+(桌面上显示图片)
举报原因:
原因补充:

(最多只允许输入30个字)