2)-2 表示するビットマップファイルをメニューからダイアログで選択する

  ヘッダーファイル

  
#include "commdlg.h"

  



  グローバル変数

  
OPENFILENAME ofn;
BOOL ret;
char buffer[MAX_PATH];

  



  初期処理部の変更(メモリデバイスコンテキストを作成するのみにする)

  
// デバイスコンテキストの取得
hDC = GetDC( hWnd );

// メモリデバイスコンテキストを作成
hDCMem = CreateCompatibleDC( hDC );

ReleaseDC( hWnd, hDC );

  



  メニューからの呼び出し

  
case IDM_OPENBITMAP:

	ofn.lStructSize = sizeof( OPENFILENAME );
	ofn.hwndOwner = hWnd;
	ofn.hInstance = hInst;
	ofn.lpstrFilter = "ビットマップ\0*.bmp\0\0";
	ofn.lpstrCustomFilter = NULL;
	ofn.nMaxCustFilter = NULL;
	ofn.nFilterIndex = 1;
	ofn.lpstrFile = buffer;
	ofn.nMaxFile = 4096;
	ofn.lpstrFileTitle = NULL;
	ofn.lpstrInitialDir = NULL;
	ofn.lpstrTitle = "ファイルのオープン";
	ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;

	// ダイアログ表示
	ret = GetOpenFileName( &ofn );
	if ( ret == 0 ) {
		break;
	}
	// 初回のロード
	if ( hBitmap == 0 ) {
		hBitmap = LoadImage(0, buffer, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
		GetObject( hBitmap, sizeof(BITMAP), &bmap );
		hOld = SelectObject( hDCMem, hBitmap );
	}
	// 2回目以降のロード
	else {
		SelectObject( hDCMem, hOld );
		DeleteObject( hBitmap );
		hBitmap = LoadImage(0, buffer, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
		GetObject( hBitmap, sizeof(BITMAP), &bmap );
		hOld = SelectObject( hDCMem, hBitmap );
	}
	RedrawWindow( hWnd, NULL, NULL, RDW_ERASE | RDW_INVALIDATE );

	break;

  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ