ファイルから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);
}