|
|
HDC hDC;
HDC hDCMem;
HANDLE hBitmap = 0;
HANDLE hOld;
BITMAP bmap;
| |
|
|
|
|
// デバイスコンテキストの取得
hDC = GetDC( hWnd );
// メモリデバイスコンテキストを作成
hDCMem = CreateCompatibleDC( hDC );
ReleaseDC( hWnd, hDC );
// ファイルよりビットマップハンドルを取得
hBitmap = LoadImage(0,"ファイルのパス", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
// ビットマップの情報を取得
GetObject( hBitmap, sizeof(BITMAP), &bmap );
// メモリデバイスに、ビットマップを選択
hOld = SelectObject( hDCMem, hBitmap );
| |
|
|
|
|
SelectObject( hDCMem, hOld );
DeleteDC( hDCMem );
DeleteObject( hBitmap );
| |
|
|
|
|
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps);
StretchBlt(
hdc,
0,
0,
bmap.bmWidth,
bmap.bmHeight,
hDCMem,
0,
0,
bmap.bmWidth,
bmap.bmHeight,
SRCCOPY
);
EndPaint( hWnd, &ps );
break;
| |
|
|
case WM_ERASEBKGND:
hOld = SelectObject( (HDC)wParam, h2000 );
GetClientRect( hWnd, &rt );
if ( rt.right > bmap.bmWidth ) {
PatBlt( (HDC)wParam,
bmap.bmWidth, 0,
rt.right - bmap.bmWidth + 1,
rt.bottom + 1,
PATCOPY );
}
if ( rt.bottom > bmap.bmHeight ) {
PatBlt( (HDC)wParam,
0, bmap.bmHeight,
rt.right + 1,
rt.bottom + 1,
PATCOPY );
}
SelectObject( (HDC)wParam, hOld );
return true;
| |
|
|
|
|
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps);
StretchBlt(
hdc,
0,
0,
bmap.bmWidth * 0.5,
bmap.bmHeight * 0.5,
hDCMem,
0,
0,
bmap.bmWidth,
bmap.bmHeight,
SRCCOPY
);
EndPaint( hWnd, &ps );
break;
| |
|
|
|