我建立一个无边框的空白窗口,在启动时加载一个在资源中的ID为IDB_BACK_0在位图,1.用一般的方法加载会看到图片从上到下的刷下来画好的,所以换了下面别人说的双缓冲的方法,但还是一样,不知道是哪里出错了.2.现在只能用已经加载到资源中的ID在显示图片,有什么方法可能 动态加载,就像启动后加载一张硬盘上的图片到一个ID可什么来的.接着就可以完成其它的操作.
希望哪位高手最好举一个简单的例子来说明一下.void CLearnDlg::OnPaint() 
{
CPaintDC dc(this); // device context for painting

/*设置背景图片*/CRect m_back;


GetWindowRect(m_back);
// 
CBitmap bitmap;

CDC dcmen;

bitmap.LoadBitmap(IDB_BACK_0); //装载图片CDC memDC; //定义一个显示设备对象CBitmap MemBitmap; //定义一个位图对象memDC.CreateCompatibleDC(NULL); //建立和屏幕显示兼容的内存显示设备MemBitmap.CreateCompatibleBitmap(&dc,m_back.Width(),m_back.Height()); //建立和屏幕显示兼容的位图memDC.SelectObject(&bitmap); //选择位图dc.StretchBlt(0,0,m_back.Width(),m_back.Height(),&memDC,0,0,741,481,SRCCOPY); //显示}

解决方案 »

  1.   

    CBitmap bmp;
    bmp.Attach((HBITMAP)LoadImage(NULL,TEXT("位图.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE));
      

  2.   


    不行呀,我复制上去也出错,提示没有LR_LOADFROMFILE,我就把它改为NULL,还有一个E:\temp\learn\learnDlg.cpp(116) : error C2668: 'LoadBitmapW' : ambiguous call to overloaded function
      

  3.   

    额,你的是EVC~~~evc下使用绝对路径加载图片资源[SHLoadDIBitmap]
    2010-01-14 11:05This function loads a bitmap from the specified file.HBITMAP SHLoadDIBitmap(
      LPCTSTR szFileName 
    );ParametersszFileName
        [in] Null-terminated string that contains the fully qualified path and file name that the bitmap will be loaded from. Return ValuesIf the function succeeds, the return value is the handle to the bitmap loaded from the file; otherwise, the return value is NULL.