简单绘图类
来源:互联网 发布:网络还原精灵 编辑:程序博客网 时间:2024/05/20 12:21
简单绘图类
文章来源: http://www.codeproject.com/KB/graphics/cpicture.aspx
代码下载: http://www.codeproject.com/KB/graphics/cpicture/CPicture_Demo.zip
http://www.codeproject.com/KB/graphics/cpicture/CPicture_src.zip
本文介绍了一个简单的类,能将大部分类型的图片绘制到屏幕上。
此外,该类还可以将图片存为资源。通过使用GetResource函数,可以很容易的将波形文件或文档模板存储到应用程序中。本文所举的例子将三种类型的影像存储在内存中:1号图片是JPEG格式,2号图片是GIF格式,3号图片是位图。
通过这个例子你将会学习到如何使用该类。下面将展示最为核心的一些代码。
下面的例子同样用到了Keith Rule的CmemDC类来增强绘图功能。
// The function 'LoadFromBuffer' prepares the IPicture class.
// It requires a buffer filled with the contents of an image.
bool CPicture::LoadFromBuffer(BYTE* pBuff, int nSize)
{
bool bResult = false;
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, nSize);
void* pData = GlobalLock(hGlobal);
memcpy(pData, pBuff, nSize);
GlobalUnlock(hGlobal);
IStream* pStream = NULL;
if (CreateStreamOnHGlobal(hGlobal, TRUE, &pStream) == S_OK)
{
HRESULT hr;
if ((hr = OleLoadPicture(pStream, nSize, FALSE, IID_IPicture,
(LPVOID *)&m_pPicture)) == S_OK)
bResult = true;
pStream->Release();
}
return bResult;
}
// This function draws the picture on the device context
bool CPicture::Draw(CDC* pDC, int x, int y, int cx, int cy)
{
long hmWidth;
long hmHeight;
m_pPicture->get_Width(&hmWidth);
m_pPicture->get_Height(&hmHeight);
if (m_pPicture->Render(pDC->m_hDC, x, y, cx, cy, 0,
hmHeight, hmWidth, -hmHeight, NULL) == S_OK)
return true;
return false;
}
- 简单绘图类
- 简单绘图
- 简单绘图
- c# GDI+简单绘图
- 第四章、简单绘图
- 四.简单绘图
- MFC 简单绘图
- 2 简单绘图
- wince简单绘图
- c# GDI+简单绘图
- VC中的简单绘图
- c# GDI+简单绘图
- API简单绘图
- API简单绘图2
- API简单绘图3
- mfc-简单绘图
- qt4 简单绘图
- 简单小程序绘图
- 100多篇编程,嵌入式,网络相关技术文章
- 适用才是王道 浅议企业如何合理选择CRM软件
- 手机电视借力奥运
- 守护企业网关
- 给多少钱就干多少活
- 简单绘图类
- 10.10
- 首个国家级企业移动信息化标准正式启动
- hibernate 一对多关系映射 笔记
- KTDictSeg V1.4.01 新增功能说明及下载地址
- 字符串前部去除自定义函数(T-SQL)
- 我从开始就烦一直到现在还在继续
- 适用才是王道 浅议企业如何合理选择CRM软件
- 手机电视借力奥运