我在屏幕上画一个位图
程序为 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()中。请指教。
程序为 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()中。请指教。
放到ondraw()里
或者告诉我它为什么会消失,到底为什么?
是把图象画到设备上了,当你刷新地时候设备要重新画过,所以你地图象就没了
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());