Windows Mobile载入位图的方法

Windows Mobile载入位图的方法

 

目前我自己只知道三种方法

一、LoadBitmap

功能:

    可从一个执行模块中载入指定的位图。

原型:

HBITMAP LoadBitmap(  __in  HINSTANCE hInstance,  __in  LPCTSTR lpBitmapName);

参数:

hInstance [in]

包含位图的模块句柄

lpBitmapName [in]

’/0’结尾的字符串,包含将要载入位图资源名字。可使用MAKEINTRESOURCE将资源ID号转换。

返回值:

如果成功,返回位图句柄,否则返回NULL

备注:

    如果文件名不存在或内存不足,函数执行失败。

当不再使用LoadBitmap对象时,调用DeleteObject删除该对象。

示例:

HBITMAP hBitmap = LoadBitmap(g_hInstance, MAKEINTRESOURCEIDB_BMP);

二、SHLoadImageResource

功能:

将视图文件转换成位图文件。视图资源文件必须在资源文件中包含。

原型:

HBITMAP SHLoadImageResource (HINSTANCE hinst,UINT uIdImageFile);

参数:

hinst

in】资源句柄

uIdImageFile

in】视图文件标号

返回值:

如果成功,返回位图句柄,否则返回NULL

备注:

转换文件的类型包括GIFPNGJPGICOBMP

当不再使用SHLoadImageResource对象时,调用DeleteObject删除该对象。

示例:

HBITMAP hBitmap = SHLoadImageResource(g_hInstance, IDR_IMAGE);

三、SHLoadImageFile

功能:

读取视图文件,解压并返回位图句柄。

原型:

HBITMAP SHLoadImageFile (  LPCTSTR pszFileName);

参数:

pszFileName 
[in] 将要载入的视图文件名

返回值:

如果成功,返回位图句柄,否则返回NULL

备注:

转换文件的类型包括GIFPNGJPGICOBMP

当不再使用SHLoadImageResource对象时,调用DeleteObject删除该对象。

示例:

    HBITMAP hBmp = SHLoadImageFile((TEXT(//My Documents//My Pictures//Waterfall.jpg)));

 

HDC hBitmapDC; 
HBITMAP hBitmap;

 

hBitmapDC = CreateCompatibleDC(hdc); //SHLoadImageResource(g_hInst,IDR_GIF1);//ok
   hBitmap =SHLoadImageFile((TEXT("//My Documents//My Pictures//Waterfall.jpg")));
//SHLoadImageResource(g_hInst,IDR_GIF1);

 CreateCompatibleBitmap(hdc,w,h);
   SelectObject(hBitmapDC,hBitmap);
StretchBlt(hdc,20,30,w,h,hBitmapDC,0,0,w,h,SRCCOPY);

////////////////////////////////

#include <Imaging.h>
#pragma comment (lib,"Ole32.lib")

 

IImagingFactory *pImageFactory = NULL;
   IImage *pImage = NULL;
   HRESULT hr;

   if (FAILED(hr = CoInitializeEx(NULL, COINIT_MULTITHREADED)))
   { 
    break;
   }
   HRESULT hrCreInstance = CoCreateInstance( CLSID_ImagingFactory, NULL,CLSCTX_INPROC_SERVER,IID_IImagingFactory, (void **)&pImageFactory);
   HRESULT hrLoadFile = pImageFactory->CreateImageFromFile(TEXT("//My Documents//My Pictures//Waterfall.jpg"), &pImage);
   if (S_OK != hrCreInstance || S_OK != hrLoadFile)
   { 
    AfxMessageBox(L"加载图片失败!!!"); 
    return;
   }
   pImage->Draw(hdc, &rt, NULL );


   pImage->Release();
   pImageFactory->Release();

你可能感兴趣的:(windows,image,server,null,mobile)