VC++ で CFormView クラスを使用して MFC ベースの SDI アプリケーションを開発しています。私の問題は、ダイアログが最初に表示されたときに画像をロードする必要があることです。SDI アプリケーションに画像を配置する方法..ダイアログ ベースのアプリケーションでは、OnInitDialog アプリケーションを使用して実行できることを知っていますが、SDI アプリケーションにはそのような機能はありません。OnInitialUpdate() と OnPaint() 関数を使って画像を配置してみました。しかし、失敗しました..最初に表示されたときに画像をダイアログに配置するにはどうすればよいですか? 助けてください
前もって感謝します
OnInitialUpdate() に配置したコード
void CECUSimulatorView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
hBitmap = LoadImage(0,_T("F:/ECUSimulator/ECUSimulator_New/res/LedOff.bmp"), IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
ImageLoading();
}
関数 ImageLoading() のコード
void CECUSimulatorView::OnInitialUpdate()
{
HDC hDC, hDCToDisplay = NULL;
hDC = CreateCompatibleDC(hDCToDisplay);
SelectObject(hDC,hBitmap);
hDCToDisplay = ::GetDC(m_picture.m_hWnd);
m_picture.GetWindowRect(&picRect);
BitBlt(hDCToDisplay,0 , 0, (picRect.right - picRect.left), (picRect.bottom -picRect.top), hDC, 0 ,0 ,SRCCOPY);
DeleteDC(hDC);
DeleteDC(hDCToDisplay);
}
ここ
HANDLE hBitmap; CStatic m_picture; //ピクチャ コントロール CRect picRect; //画像制御矩形
OnInitialUpdate() からコードを削除し、次のように OnPaint() 関数に配置しました。
void CECUSimulatorView::OnPaint() { CPaintDC dc(this); // ペイントのデバイス コンテキスト
hBitmap = LoadImage(0,_T("F:/ECUSimulator/ECUSimulator_New/res/LedOff.bmp"), IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
ImageLoading();
}