我正在使用 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);
}
这里
处理 hBitmap;CStatic m_picture; //图片控制CRect picRect; //图片控制矩形
我从 OnInitialUpdate() 中删除了代码并将其放在 OnPaint() 函数中,如下所示:
无效 CECUSimulatorView::OnPaint() { CPaintDC dc(this); // 绘画的设备上下文
hBitmap = LoadImage(0,_T("F:/ECUSimulator/ECUSimulator_New/res/LedOff.bmp"), IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
ImageLoading();
}