windows mobile 显示多种压缩格式图片,背景也是透明的方式。
本来这些我应该早早就发现了。但是却没有。很遗憾。
这个方法的使用比较简单。
|
文件: |
ImageTest.rar |
大小: |
1759KB |
下载: |
下载 | |
可以如下使用
文件头引用 :
#include "initguid.h"
#include
然后呢,就如下代码就可以进行显示了:
// TODO: 在此添加控件通知处理程序代码
HRESULT hr ; //返回结果
IImagingFactory * pImagingFactory =NULL; //Image工厂接口对象
IImage * pImage = NULL; //Image接口对象
LPCTSTR szFileName = L"\\展开动画-中.gif"; //图象文件
//初始化COM环境
if (FAILED(hr = CoInitializeEx(NULL, COINIT_MULTITHREADED)))
{
TRACE(L"COINIT_MULTITHREADED ERROR");
return;
}
//得到Image工厂接口对象
hr = CoCreateInstance(CLSID_ImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
IID_IImagingFactory,
(void**) &pImagingFactory);
if (FAILED(hr))
{
TRACE(L"IMAGE FACTORY CREATED ERROR");
goto finish;
}
//加载图象文件到IImage接口对象中
hr = pImagingFactory->CreateImageFromFile(szFileName,&pImage);
//
if (FAILED(hr))
{
TRACE(L"IMAGE LOAD ERROR");
goto finish;
}
//开始绘制图象
//得到设备环境
CDC *pDC =GetDC();
//定义绘制尺寸
RECT rect;
GetClientRect(&rect);
rect.left =65;
rect.top =65;
rect.right=165;
rect.bottom = 165;
//绘制图片
pImage->Draw(pDC->m_hDC, &rect, NULL);
//释放设备环境
ReleaseDC(pDC);
finish:
//释放IImage接口对象
if (pImage)
pImage->Release();
//释放IImagingFactory接口对象
if (pImagingFactory)
pImagingFactory->Release();
//释放程序占用的COM资源
CoUninitialize();
我将些内容改为函数,调用比较成功,但是当我想改为类的时候却失败了。
下面是我改的函数:
void CImagingDemoDlg::MyDrawImage( LPCTSTR szFileName,CDC *pDC,RECT rect)
{
HRESULT hr ; //返回结果
IImagingFactory * pImagingFactory =NULL; //Image工厂接口对象
IImage * pImage = NULL; //Image接口对象
//初始化COM环境
if (FAILED(hr = CoInitializeEx(NULL, COINIT_MULTITHREADED)))
{
TRACE(L"COINIT_MULTITHREADED ERROR");
return;
}
//得到Image工厂接口对象
hr = CoCreateInstance(CLSID_ImagingFactory,
NULL,
CLSCTX_INPROC_SERVER,
IID_IImagingFactory,
(void**) &pImagingFactory);
if (FAILED(hr))
{
TRACE(L"IMAGE FACTORY CREATED ERROR");
goto finish;
}
//加载图象文件到IImage接口对象中
hr = pImagingFactory->CreateImageFromFile(szFileName,&pImage);
//
if (FAILED(hr))
{
TRACE(L"IMAGE LOAD ERROR");
goto finish;
}
//绘制图片
pImage->Draw(pDC->m_hDC, &rect, NULL);
//释放设备环境
ReleaseDC(pDC);
finish:
//释放IImage接口对象
if (pImage)
pImage->Release();
//释放IImagingFactory接口对象
if (pImagingFactory)
pImagingFactory->Release();
//释放程序占用的COM资源
CoUninitialize();
}
我在这个函数里这么调用:
//开始绘制图象
//得到设备环境
CDC *pDC =GetDC(); //获得是显示器的设备上下文,不是桌面的.
//定义绘制尺寸
RECT rect;
GetClientRect(&rect);
MyDrawImage(L"\\展开动画-中.gif",pDC,rect);
后记:
终于找到一个网友写的类,是用的这些内容。很高心拿来了,做了个工程,
原文章:PPC中显示bmp, png, jpg, 图片
下面传上原工程代码。
|
文件: |
ImageTest.rar |
大小: |
1728KB |
下载: |
下载 | |
阅读(1215) | 评论(0) | 转发(0) |