我的程序使用图片贴图(先从文件LoadImage,然后BitBlt),有时候绘制在屏幕上的并不是真实的图片,而是一个系统图片(最常见的是组合框的按钮图片,或者窗体的向下还原图片)。非常奇怪的问题,希望高手指点!!!

解决方案 »

  1.   

    LOADIMAGE有问题。
    或者是图片对象是局部变量,出函数后消失了,所以显示不了,如果是这样,改为全局变量即可。
    或者是根本就没有成功,如果是这样,要检查原因。
      

  2.   

    过程是这样的,使用LoadImage后把HBITMAP保存在全局变量中,每次刷新时:  CDC* pDC = GetWindowDC();
      CDC memDC;
      memDC.CreateCompatibleDC(pDC);
      CBitmap* pBitmap = CBitmap::FromHandle(g_hBmp);
      CBitmap* pOld    = memDC.SelectObject(pBitmap);
      pDC->BitBlt(0, 0, nWidth, nHeight, &memDC, 0, 0, SRCCOPY);
      memDC.SelectObject(pOld);
      ReleaseDC(pDC);
      

  3.   

    LoadImage时已经判断返回值,如果Load失败则提示用户,所以不是LoadImage失败而引起的。
      

  4.   

    搞不太清楚了。把CBitmap* pBitmap定义成全局的,试试。