ビットマップファイルをウインドウに表示

  グローバル変数

  
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;
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ