C++ 作为MDI mainfrm背景的位图

C++ 作为MDI mainfrm背景的位图,c++,bitmap,background,mfc,mdi,C++,Bitmap,Background,Mfc,Mdi,我正在尝试在加载任何其他帧之前将位图图像作为主机的背景,但我没有任何运气,我缺少了什么 BOOL CMainFrame::OnEraseBkgnd(CDC* pDC) { CBitmap m_cbImage; COLORREF m_crBack; UINT m_uImage; m_crBack = RGB(255, 255, 255); m_uImage = IDB_SPLASH; if ((m_cbImage.m_hObject == NULL

我正在尝试在加载任何其他帧之前将位图图像作为主机的背景,但我没有任何运气,我缺少了什么

BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
    CBitmap m_cbImage;
    COLORREF m_crBack;
    UINT m_uImage;
    m_crBack = RGB(255, 255, 255);
    m_uImage = IDB_SPLASH;

    if ((m_cbImage.m_hObject == NULL) && (m_uImage>0))
    {
        m_cbImage.LoadBitmap(m_uImage);
        m_bFirst = TRUE;
    }
    else
    {
        if (m_bFirst)
        {
            m_bFirst = FALSE;
        }
    }
    CRect rcClient;
    GetClientRect(rcClient);
    pDC->FillSolidRect(rcClient, m_crBack);
    if (m_cbImage.m_hObject != NULL)
    {
        BITMAP sBitmap;
        m_cbImage.GetBitmap(&sBitmap);
        CSize szImage(sBitmap.bmWidth, sBitmap.bmHeight);
        pDC->DrawState(CPoint(0, 0), szImage, &m_cbImage, DST_BITMAP | DSS_NORMAL);
    }
    return TRUE;

}

看起来像大型机背景的东西实际上不是。大型机主要处理的就是:框架。MDI客户端区域由MDI客户端窗口处理(MDI客户端窗口反过来管理MDI子窗口)

要更改背景图形,请创建一个MDI客户端窗口类(CWnd的公共派生类),并在其
OnEraseBkgnd
中处理该图形。在大型机类中创建该类的实例,并在大型机的
OnCreate
中,告诉MDI客户端对stock MDI client窗口进行子类化:

myClient.SubclassWindow(m_hWndMDIClient);

看起来像大型机背景的东西实际上不是。大型机主要处理的就是:框架。MDI客户端区域由MDI客户端窗口处理(MDI客户端窗口反过来管理MDI子窗口)

要更改背景图形,请创建一个MDI客户端窗口类(CWnd的公共派生类),并在其
OnEraseBkgnd
中处理该图形。在大型机类中创建该类的实例,并在大型机的
OnCreate
中,告诉MDI客户端对stock MDI client窗口进行子类化:

myClient.SubclassWindow(m_hWndMDIClient);

通过子类化提出的方法在最新版本的MFC中不起作用。 但幸运的是,我们为这项任务设计了一种特殊的方式:

  • 确保您的CMInframe类继承自
    CMDIFrameWndEx
  • 重写其
    OnEraseMDIClientBackground(CDC*dc)
    virtual方法
  • 您的实现应该返回
    TRUE

    • 通过子类化提出的方法在最新版本的MFC中不起作用。 但幸运的是,我们为这项任务设计了一种特殊的方式:

      • 确保您的CMInframe类继承自
        CMDIFrameWndEx
      • 重写其
        OnEraseMDIClientBackground(CDC*dc)
        virtual方法
      • 您的实现应该返回
        TRUE

      作为您在此处所说内容的示例,我在此处找到了一个小代码:作为您在此处所说内容的示例,我在此处找到了一个小代码: