ファイルからBMPファイルを読み込んで表示する

ViewクラスのOnButtonDownハンドラに以下のコードを打ち込む。

すると、ウィンドウの上でマウスをクリックすると指定したBMPファイルを読み込んで表示する

ファイルの選択は、CFileDialogを使用する
以下の例はOnButton3()を押してファイルを選択するやり方
 

void CCpptestView::OnButton3()
{
 // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
 
 //----- 開くファイルを選択する
 CFileDialog dlg( TRUE, // TRUE=読み込み FALSE=書き込み
 "htm", // デフォルトファイル拡張子
 "testfile", // デフォルトファイル名
 OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,// オープンフラグ
 "HTML Files (*.htm)|*.htm|All Files (*.*)|*.*||", // フィルタ
 NULL); // 親ハンドル
 
if(dlg.DoModal() != IDOK)return; // ファイルを選択していない or キャンセルの場合は帰る

 CString filename = dlg.GetPathName(); // 選択したファイル名を取得する
 
}
 
//////////////////////////////////////////////////////////
// CBmpload4View クラスのメッセージ ハンドラ
void CBmpload4View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
 
HBITMAP hbm; // BITMAPのハンドル作成
hbm = (HBITMAP)LoadImage(NULL, "Test.bmp",   // 読み込んだビットマップをハンドルに結びつける
IMAGE_BITMAP, 0,0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION);
 
CDC *hdc; // 書き込み先(つまり、自分のウィンドウ)のDCを得る
hdc = GetDC();
 
CDC DC;   // 書き込み元(つまり読み込んだBITMAP)のDCを作る
DC.CreateCompatibleDC(0);
DC.SelectObject(hbm); // 作ったDCに読み込んだBITMAPを結び付ける
 
hdc->BitBlt(0,0,640,640,&DC,0,0,SRCCOPY); // 書込む
ReleaseDC(hdc);           // 後始末(hdcを消しておく。約束)
 
 
CFormView::OnLButtonDown(nFlags, point);
 
}