那位给看一下,这个函数0.5秒调用一次,内存一直在增,不知道那得问题,感觉资源都释放了
void CMouseWheel_TestDlg::MyDraw(void)
{
CDC *pDC=GetDC();
CDC MemDC;
//创建与内存兼容的DC
MemDC.CreateCompatibleDC(pDC);
//BITMAP句柄
BITMAP bm;
//CBitmap对象
CBitmap *pOldBitmap;
//A311
CBitmap BitmapA311;
BitmapA311.LoadBitmap(IDB_A311b);
BitmapA311.GetObject(sizeof(BITMAP),&bm);
//替换原位图
pOldBitmap=(CBitmap*)(MemDC.SelectObject(&BitmapA311));
//获取绘制的区域
CWnd *pEdit=GetDlgItem(IDC_BUTTON1);
CRect rc;
pEdit->GetWindowRect(&rc);
ScreenToClient(rc);
pDC -> StretchBlt(rc.left+4,rc.top+4,rc.Width()-8,rc.Height()-8,&MemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
DeleteObject(BitmapA311);
MemDC.SelectObject(pOldBitmap);
pOldBitmap->DeleteObject();
MemDC.DeleteDC();
}
void CMouseWheel_TestDlg::MyDraw(void)
{
CDC *pDC=GetDC();
CDC MemDC;
//创建与内存兼容的DC
MemDC.CreateCompatibleDC(pDC);
//BITMAP句柄
BITMAP bm;
//CBitmap对象
CBitmap *pOldBitmap;
//A311
CBitmap BitmapA311;
BitmapA311.LoadBitmap(IDB_A311b);
BitmapA311.GetObject(sizeof(BITMAP),&bm);
//替换原位图
pOldBitmap=(CBitmap*)(MemDC.SelectObject(&BitmapA311));
//获取绘制的区域
CWnd *pEdit=GetDlgItem(IDC_BUTTON1);
CRect rc;
pEdit->GetWindowRect(&rc);
ScreenToClient(rc);
pDC -> StretchBlt(rc.left+4,rc.top+4,rc.Width()-8,rc.Height()-8,&MemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
DeleteObject(BitmapA311);
MemDC.SelectObject(pOldBitmap);
pOldBitmap->DeleteObject();
MemDC.DeleteDC();
}
解决方案 »
- 输入输出流读写文件的时候,不能重复操作??
- 请给我一个学好COM的理由?
- 不爽呀,散分
- 诚挚的请问哪儿有介绍串口通信书籍的下栽地址?还有:怎么去控制串口以二进制,ASCII,16进制传输呢?回答就有分的哦。
- 讲讲你什么时候分别用MessageBox和AfxMessageBox
- 静态文本刷新不了的问题,高分求解决方法
- 怎样在工具栏中加入COMBOBOX?
- 用SDK写的屏幕保护程序如何设置显示属性中的描述文字?
- VC控制word无法写入文字
- 紧急求助网络编程方面的英文版文章!!!
- 请问如果是软件导致电脑死机,重启后,有没有什么痕迹表明是什么程序导致的
- Dependency Walker中的沙漏是什么意思?
没释放吧 releasedc(pdc);释放之pEdit这个也是