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)

 

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル