我做一个键盘控件,用两张图片不停的替换,请帮帮忙,可以替换,可浪费资源太多太多!请看下边那个页面!
http://www.csdn.net/expert/topic/1009/1009461.xml
http://www.csdn.net/expert/topic/1009/1009461.xml
解决方案 »
- 各位我想问下网络编程中的的问题(做了一年的通信还没明白)
- 请教这样的软件界面是如何做的?
- 一个关于copy的问题,大家帮帮忙!
- 如何使mainframe无最大化最小化等按扭?在线
- 如何在 C++表示一个集合?
- 不明白,为什么一外部变量在一个类中更改其值没有用
- MSDN宇宙版!!!正式开通邮件组,欢迎加盟,共同铸造自己的资源宇宙!
- 自制的OCX控件在WEB页面报错的解决办法?
- 如何在vc++中如何让扬声器播放音乐?请提供源码,谢谢!
- netsong兄长,如何解决局域网下机子用udp,我没找到vc中关于icq 的呀
- 如何在一个数组中找出相同数据,并将其记下来?
- 谁能给我解释一下;“ATL对自动化的支持”,支持具体体现在哪里?
将BMP1(可能是你的主窗口背景图)贴在你的主窗口中,BMP2贴在一个非模态对话框上,并且将该非模态对话框设置成最上层的窗口,这样你的那些BitBlt都可以转换为MoveWindow这个非模态对话框
用DeleteDC(dcMemory1);DeleteDC(dcMemory2);
CBitmap *bitmap1;
bitmap1=new CBitmap();
bitmap1->LoadBitmap(id1);
dc=CWnd::GetDC();
dcMemory2.CreateCompatibleDC(dc);
oldBitmap2=dcMemory2.SelectObject(bitmap1);
dc->BitBlt (left1,top1,right1,bottom1,&dcMemory2,left1,top1,SRCCOPY);
dcMemory2.SelectObject(oldBitmap2);
dcMemory2.DeleteDC();
bitmap1->Detach();
bitmap1->DeleteObject();
bitmap1->Detach();
bitmap1->DeleteObject();
delete bitmap1;
bitmap1=NULL;
ReleaseDC(dc);
怎么办?
mfc的这几个类不熟,你直接用句柄会更好操作更清晰。
mybitmap2->Detach();
这是不能有的。//问题在此。倒数第3行
mybitmap2->DeleteObject();
也是可以不要的。还有 oldBitmap1, oldBitmap2 也是多余的,可以删了。包括dcMemory1.SelectObject(oldBitmap1);等还有如果dcMemory1,dcMemory2是全局的变量你得 DeleteDC,如果是局部变量就无所谓了,还有如果这是个函数得话,你干吗每次都Loadbitmp 2。何不在外面load 1 次保存着。
bitmap1->Detach();
bitmap1->DeleteObject();
你都已经Detach了,delete bitmap1的时候当然就删不掉位图了。解决方法:
DeleteObject(bitmap1->Detach());或把bitmap1->Detach();删掉