首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于导入位图后最小化程序位图消失?解决方法

2012-02-09 
关于导入位图后最小化程序位图消失?voidCFindfileDlg::OnButton2(){//TODO:Addyourcontrolnotificationhan

关于导入位图后最小化程序位图消失?
void   CFindfileDlg::OnButton2()  
{
//   TODO:   Add   your   control   notification   handler   code   here
CDC       *pDC=GetDC();      
CDC       MemDC;      
CString       str( "wrong.bmp ");
HBITMAP       hBitmap=(HBITMAP)LoadImage(NULL,str,       IMAGE_BITMAP,       20,       20,       LR_LOADFROMFILE|LR_CREATEDIBSECTION);      
CBitmap       *pBitmap       =       new       CBitmap;      
       
pBitmap-> Attach(hBitmap);                  
//pBitmap       =       CBitmap::FromHandle(hBitmap);      
//上述二句话实际效果完全相同.                  
       
MemDC.CreateCompatibleDC(pDC);           //       创建与屏幕DC兼容的DC,这样BitBlt过去才是一样的坐标系      
MemDC.SelectObject(pBitmap);      
pDC-> BitBlt(0,       0,800,       800,       &MemDC,       0,       0,       SRCCOPY);
pBitmap-> Detach();      
delete       pBitmap;
}


点这个按钮画了图片后,再把程序最小化恢复后图片又没了。怎么解决这个问题???

[解决办法]
当然没了
pBitmap都delete了,对象都没了,还会有图

应该把 pBitmap 定成全局,OnButton2() 时LoadImage
OnPaint时BitBlt

[解决办法]
在OnPaint()中绘制,
void CFindfileDlg::OnButton2()
中invalidate()刷新;

热点排行