我在屏幕上画一个位图
程序为 void show()
{
CBitmap bitmap;
CDC MemDC;
bitmap.LoadBitmap(IDB_COMPARE_EQUAL);
BITMAP bmpInfo;
     bitmap.GetObject(sizeof(BITMAP),&bmpInfo);
CDC *pDC=GetWindowDC();
         MemDC.CreateCompatibleDC(pDC);

         if(!MemDC.SelectObject(&bitmap)) return;

pDC->BitBlt(x,y,bmpInfo.bmWidth, bmpInfo.bmHeight,
&MemDC,0,0,SRCCOPY);
  MemDC.DeleteDC();
bitmap.DeleteObject();
}
画完之后,只要再调用OnDraw()函数,或刷新屏幕什么的,
位图就没有了,这是为什么呢?
我应该怎样把位图保留住呢,别告诉我再画一遍, 我也不想把这段程序
放到OnDraw()中。请指教。

解决方案 »

  1.   

    把show()
    放到ondraw()里
      

  2.   

    可我不想把它放到OnDraw()里
     或者告诉我它为什么会消失,到底为什么?
      

  3.   

    pDC->BitBlt
    是把图象画到设备上了,当你刷新地时候设备要重新画过,所以你地图象就没了
    CStatic m_Static_Picture;
    CBitmap bitmap;  // 定义为类变量
    bitmap.LoadBitmap(IDB_COMPARE_EQUAL);if(!m_Static_Picture.m_hWnd)
    {
    GetClientRect( (LPRECT)&ClientRect );
    m_Static_Picture.Create("NAGASAWA", SS_BITMAP & ~SS_REALSIZEIMAGE, ClientRect, (CWnd *)this); }
    m_Static_Picture.SetBitmap(bmp.operator HBITMAP());