2007年4月14日土曜日

HBITMAPに関係するもの

Win32API と WindowsMobileのAPIにはある程度の互換性があるが、Mobile向けには用意されていないAPIもいくつかあるようだ

Mobile でも使用できるHBITMAP に関係のある関数をwingdi.hから抜粋してみた


WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP);
WINGDIAPI HBITMAP WINAPI CreateBitmap(int,int,UINT,UINT,CONST VOID *);
WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap(HDC,int,int);
WINGDIAPI LONG WINAPI SetBitmapBits(HBITMAP,DWORD,CONST VOID*);
WINGDIAPI BOOL WINAPI MaskBlt(HDC,int,int,int,int,HDC,int,int,HBITMAP,int,int,DWORD);
WINGDIAPI HBITMAP WINAPI CreateDIBSection(HDC,CONST BITMAPINFO *,UINT,VOID **,HANDLE,DWORD);
WINGDIAPI int WINAPI GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
WINGDIAPI LONG WINAPI GetBitmapBits(HBITMAP, LONG, LPVOID);


使えそうなのは
  • CreateBitmap(int,int,UINT,UINT,CONST VOID *);
  • CreateCompatibleBitmap(HDC,int,int);
  • SetBitmapBits(HBITMAP,DWORD,CONST VOID*);
  • CreateDIBSection(HDC,CONST BITMAPINFO *,UINT,VOID **,HANDLE,DWORD);
  • GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
  • GetBitmapBits(HBITMAP, LONG, LPVOID);
かな?

CreateBitmapはモノクロのbitmapを作成するときに使うらしい、カラーのデバイス依存のbitmap作成ならCreateCompatibleBitmapを使用する
デバイスに依存しないビットマップはCreateDIBSectionで作成する

bitmapのピクセルデータビット列への操作は、デバイス依存の場合はGetBitmapBits、SetBitmapBitsで行う。GetDIBitsはデバイス依存のbitmapをデバイスに依存しないbitmapへコピーする


これで昨日のソースを書き換えられそうな気がする


GetBitmapBits ,GetDIBits はMobileでは使えなかった....

0 件のコメント: