我创建了一个类CDIB:如下
// DIB.cpp: implementation of the CDIB class.
//
//////////////////////////////////////////////////////////////////////#include "stdafx.h"
#include "DIB.h"#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////CDIB::CDIB()
{
m_pBMI = NULL;
m_pDIBData = NULL;
}CDIB::~CDIB()
{
if (m_pBMI != NULL)
delete m_pBMI;
if (m_pDIBData != NULL)
delete m_pDIBData;
}BOOL CDIB::LoadFromFile(LPCTSTR lpszFileName)
{
CFile file;
BITMAPINFO* pBMI = NULL;
BYTE* pDIBData = NULL; if (!file.Open(lpszFileName, CFile::modeRead | CFile::typeBinary))
{
AfxMessageBox("打不开文件!");
return FALSE;
} BITMAPFILEHEADER bfh;
if (file.Read(&bfh, sizeof(bfh)) != sizeof(bfh))
{
AfxMessageBox("读文件出错!");
return FALSE;
} if (bfh.bfType != 0x4d42)
{
AfxMessageBox("不是BMP文件!");
return FALSE;
}
BITMAPINFOHEADER bih;
if (file.Read(&bih, sizeof(bih)) != sizeof(bih))
{
AfxMessageBox("读文件出错!");
return FALSE;
}
if (bih.biBitCount != 24)
{
AfxMessageBox("不是24位真彩色位图!");
return FALSE;
}
pBMI = (BITMAPINFO*) new char[sizeof(BITMAPINFOHEADER)];
if (!pBMI)
{
AfxMessageBox("分配内存出错!");
return FALSE;
}
memcpy(pBMI, &bih, sizeof(BITMAPINFOHEADER)); DWORD dataBytes = bfh.bfSize - bfh.bfOffBits;
pDIBData = (BYTE*) new char[dataBytes];
if (!pDIBData)
{
AfxMessageBox("分配内存出错!");
delete pBMI;
return FALSE;
}
if (file.ReadHuge(pDIBData, dataBytes) != dataBytes)
{
AfxMessageBox("读文件出错!");
delete pBMI;
delete pDIBData;
return FALSE;
}
file.Close();

if(m_pBMI != NULL)
delete m_pBMI;
m_pBMI = pBMI;

if (m_pDIBData != NULL)
delete m_pDIBData;
m_pDIBData = pDIBData;  return TRUE;  }void CDIB::ShowDIB(CDC* pDC, int nLeft, int nTop, int nWidth, int nHeight)
{
pDC->SetStretchBltMode(COLORONCOLOR);
StretchDIBits(pDC->GetSafeHdc(),
  nLeft,
  nTop,
  nWidth,
  nHeight,
  0,
  0,
  GetDIBWidth(),
  GetDIBHeight(),
  m_pDIBData,
  m_pBMI,
  DIB_RGB_COLORS,
  SRCCOPY);
}
然后在
void CMYOBJECTDlg::YW_InitDlgBtn()
{
//Draw the  bitmap of main view
    m_dib.LoadFromFile("MYBACKGROUND.bmp");
}
然后在初始化中中调用该函数YW_InitDlgBtn()为何得不到该背景图片MYBACKGROUND.bmp