2

我有一个基于对话框的 MFC 应用程序。我使用这个从资源创建了一个 GDI+ 对象。

我的Dlg.cpp:

BOOL CSetupDlg::OnInitDialog()
{
    Gdiplus::GdiplusStartupInput gdiplusStartupInput;
    Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
        ...
}

无效我的函数():

CGdiPlusBitmapResource* pBitmap = new CGdiPlusBitmapResource;
if (pBitmap->Load(ID_SPL_LG))
{
    CPaintDC dc(this);
    Gdiplus::Graphics graphics(dc);
    graphics.DrawImage(*pBitmap, 0, 0);
    //It is loaded . I checked with messagebox and its in here.
}
Invalidate(); //Not sure if necessary.

现在,Form/Dialog 什么也没有显示。没有插入或附加图像。

现在,我尝试了几件事来将此图像添加到对话框中,但我无法做到。

我尝试的是GDIObject.Create()CStatic.Create()PictureControl.Create()

我要做的就是将此图像插入对话框。

任何想法或显示路径表示赞赏。

4

1 回答 1

5

您将需要覆盖OnPaint响应WM_PAINT对话框中消息的方法。通常你不需要这样做,因为对话框不需要绘制任何东西,它只是让包含在它上面的控件自己绘制。

将您显示的代码移动到 OnPaint 处理程序中。

不要从您自己的处理程序调用默认 OnPaint。

不要从 OnPaint 处理程序中调用,否则Invalidate会出现无限循环。

于 2012-12-26T18:32:09.383 回答