WindowsProgram

ビットマップとはWindowsで扱う画像のことである。
ビットマップの構造はBITMAP構造体に定義されている。
実際に表示をするにはビットマップハンドルをデバイスコンテキスト(DC)に関連付けて、表示用のDCに対して
BitBltする必要がある。
そのHBITMAPであるが、作り方は何通りかあるので使用目的ごとに説明する。

  1. HBITMAP CreateDIBSection(hdc, *pbmi, iUsage, **ppvBits, hSection, dwOffset)
  2. BITMAP CreateDIBitmap(hdc, lpbmih, fdwInit, lpbInit, lpbmi, fuUsage)
  3. HBITMAP CreateCompatibleBitmap(hdc, nWidth, nHeight)
  4. HBITMAP CreateBitmap(nWidth, nHeight, cPlanes, cBitsPerPel, lpvBits)
  5. int StretchDIBits(hdc, XDest, YDest, nDestWidth, nDestHeight, XSrc, YSrc, nSrcWidth, nSrcHeight, lpBits, lpBitsInfo, iUsage, dwRop)
  6. LONG SetBitmapBits(hbmp, cBytes, lpBits)
  7. int SetDIBitsToDevice(hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse)
  8. HBITMAP LoadBitmap(hinst, lpszBitmap)
  9. HBITMAP LoadImage(NULL, lpszBitmap, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION)


このうちよく使うのがCreateDIBSectionである。
このAPIはDIBとHBITMAPを同時に作成するのでビットマップの扱いには便利だからだ。

HBITMAP CreateDIBSection(hdc, *pbmi, iUsage, **ppvBits, hSection, dwOffset)
HBITMAP CreateCompatibleBitmap(hdc, nWidth, nHeight)
HBITMAP LoadBitmap(hinst, lpszBitmap)
HBITMAP LoadImage(NULL, lpszBitmap, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION)

 

 

HBITMAP LoadImage(NULL, lpszBitmap, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION)
HBITMAP LoadImage(hModule, lpszBitmap, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION)
GetModuleHandle(NULL)

 

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!