GDI+ 加载PNG图片
#include <GdiPlus.h>
#pragma comment(lib, "GdiPlus.lib")
using namespace Gdiplus;
class mygdiplus
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
public:
mygdiplus()
{
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
}
~mygdiplus()
{
GdiplusShutdown(gdiplusToken);
}
}; Rect rect(20, 20, 326, 326);
Graphics grpx(hdc);
Image* pImage = new Image(TEXT("a1.png"));
//Image* pImage = Gdiplus::Image::FromFile(TEXT("a1.png"));
grpx.DrawImage(pImage,rect);
case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps); /*Image image(L"a1.png");
Graphics graphics(hdc);
graphics.DrawImage(&image, 0, 0);*/ //GdiplusStartupInput gdiplusStartupInput;
//ULONG_PTR gdiplusToken;
//GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); Rect rect(, , , );
Graphics grpx(hdc);
Image* pImage = new Image(TEXT("a1.png"));
//Image* pImage = Gdiplus::Image::FromFile(TEXT("a1.png"));
grpx.DrawImage(pImage,rect); delete pImage; // shut down - only once per process
//GdiplusShutdown(gdiplusToken); EndPaint(hWnd, &ps);
return ;
#include <windows.h>
#include <GdiPlus.h>
#pragma comment(lib, "GdiPlus.lib")
using namespace Gdiplus; class mygdiplus
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
public:
mygdiplus()
{
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
}
~mygdiplus()
{
GdiplusShutdown(gdiplusToken);
}
}; LRESULT CALLBACK MyWinMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//回调函数(消息的) class cWNDCLASSEX
{
public:
cWNDCLASSEX(HINSTANCE h, int n) :hInstance(h), nCmdShow(n) {};
//WNDCLASSEX wndclass;
void cj();
private:
int nCmdShow;
HINSTANCE hInstance;
//WNDCLASSEX wndclass; }; void cWNDCLASSEX::cj()
{
WNDCLASSEX wndclass;
HBRUSH hBrush = ::CreateSolidBrush(RGB(, , ));
HWND hWnd;
wndclass.cbClsExtra = ;
wndclass.cbSize = sizeof(wndclass);
wndclass.cbWndExtra = ;
wndclass.hbrBackground = hBrush;
wndclass.hCursor = ;
wndclass.hIcon = ;
wndclass.hIconSm = ;
wndclass.lpfnWndProc = MyWinMain;
wndclass.lpszClassName = TEXT("Leo"); //注册窗口时候要的名字,作为参数
wndclass.lpszMenuName = ; //菜单名字
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.hInstance = hInstance; if (RegisterClassEx(&wndclass) == false)
{
//MessageBox(NULL, "注册失败", "提示", MB_OK);
//return 0;
} hWnd = CreateWindow(
TEXT("Leo"),
TEXT("Small Test"),
WS_OVERLAPPEDWINDOW|WS_VSCROLL,
,
,
,
,
NULL,
NULL,
hInstance,
NULL); ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (::GetMessage(&msg, , , ))
{ ::TranslateMessage(&msg); //将得到的消息翻译
::DispatchMessage(&msg); //翻译来的消息发送 } } int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
cWNDCLASSEX a1(hInstance, nCmdShow);
a1.cj();
return ;
} LRESULT CALLBACK MyWinMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)//回调函数(消息的)
{
//HBRUSH m_hbr = CreateSolidBrush(RGB(255, 0, 0));
HDC hdc; //设备描述表句柄
PAINTSTRUCT ps;//绘制窗口
//RECT rect;
mygdiplus mygdiplusS;
switch(uMsg)
{ case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps); /*Image image(L"a1.png");
Graphics graphics(hdc);
graphics.DrawImage(&image, 0, 0);*/ //GdiplusStartupInput gdiplusStartupInput;
//ULONG_PTR gdiplusToken;
//GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); Rect rect(, , , );
Graphics grpx(hdc);
Image* pImage = new Image(TEXT("a1.png"));
//Image* pImage = Gdiplus::Image::FromFile(TEXT("a1.png"));
grpx.DrawImage(pImage,rect); delete pImage; // shut down - only once per process
//GdiplusShutdown(gdiplusToken); EndPaint(hWnd, &ps);
return ; }
case WM_CLOSE: //自动退出 ::PostQuitMessage();
break; } return DefWindowProc(hWnd, uMsg, wParam, lParam); //返回消息的默认处理
}
GDI+ 加载PNG图片的更多相关文章
- VB6之GDI+加载PNG图片
原生的VB6不支持PNG个图片,因为刚有VB的时候还没有PNG的概念呢.不过,利用GDI+加载解析个PNG简直是砍瓜切菜般简单. GDI+的模块是我在网上下载的,地址应该是:http://vistas ...
- win32用GDI+加载png图片作为背景图
#include <windows.h> #include <gdiplus.h> /* GDI+ startup token */ ULONG_PTR gdiplusStar ...
- VC中使用GDI+实现为按钮加载Png图片
http://blog.csdn.net/flyfish1986/article/details/5381605 VC中使用GDI+实现为按钮加载Png图片 http://www.codeprojec ...
- WebView加载HTML图片大小自适应与文章自动换行
http://www.brighttj.com/ios/ios-webview-load-html-image-adaptive.html 在很多App中都会使用到webview,尤其是在加载新闻内容 ...
- Android ListView 图片异步加载和图片内存缓存
开发Android应用经常需要处理图片的加载问题.因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载.为了增加用户体验,给用 ...
- WPF中加载高分辨率图片性能优化
在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题. 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高. 代码: XAML: < ...
- Fresco 使用笔记(一):加载gif图片并播放
项目总结 --------------------------------------------------------------------- 前言: 项目中图文混合使用的太多太多了,但是绝大部 ...
- 图片_ _Android有效解决加载大图片时内存溢出的问题 2
Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ...
- Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子
Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); ...
随机推荐
- 【纯净版windows系统】U盘启动制作图文教程
无废话,按照步骤来就可以. 1.一个大于4G的U盘(格式化)准备好U盘,请注意制作过程中对U盘有格式化操作,有用的东西请先备份 2.UltraISO(软碟通软件)下载安装百度“软碟通”,或者访问 ht ...
- Linux下使用Curl调用Java的WebService接口
其实只要是标准的WSDL的SOA接口WebService都可以用. 调用方式: 注意:上面的方式不包括加密或者登录的,其实SOA有一套完整的加密方式. curl -H'Content-Type: te ...
- 数据库中的DDL/DML/DCL解释(转)
DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 1.CREATE - ...
- spring mvc get请求也可以接受DTO对象
spring mvc get请求也可以接受DTO对象,比如:url上面你还是将参数&符号连接起来,并自动封装进一个DTO对象里. 只有@RequestBody注解spring mvc才会从ht ...
- Java泛型的主要用途
1.泛型的主要用途就是代替各种类型,作为一个笼统的整体类型代替,也就是代替参数,不论是传入参数还是返回参数.都可以用泛型来代替. 如dao操作类的增删改查操作,因为传入参数的类型不同,但基本都是相同接 ...
- python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别和基本使用
1.解析速度:ElementTree在 Python 标准库中有两种实现.一种是纯 Python 实现例如 xml.etree.ElementTree ,另外一种是速度快一点的 xml.etree.c ...
- Linux信号通讯编程
信号通讯流程为: ①进程A/内核选择信号 ②发送信号 ③进程B接收信号并处理 Linux系统支持的全部信号均定义在/usr/include/asm/signal.h.当中常见的信号有: ①SIGKIL ...
- Meteor计时器
Meteor有提供它自己的setTimeout和setInterval方法.这些方法被用于确保所有全局变量都具有正确的值.它们就像普通 JavaScript 中的setTimeout 和 setInt ...
- [转] ubuntu 下mongodb的安装-----这篇文章也不错
在Ubuntu下进行MongoDB安装步骤 一. 在Ubuntu下最傻瓜的步骤(以下都在root用户下进行操作): 1.运行"apt-get install mongo" 如果遇到 ...
- 再说javascript 的__proto__ 和prototype 属性
过了一段时间,没写 原生的 javascript 的了,感觉天天在用框架写代码,框架写代码完全限定死了你所需要思考的东西,只是在处理一些业务逻辑,真正的代码 都感觉不会写了. 突然发现,框架用的不熟悉 ...