为什么我用这段代码在对话框内部绘图总是运行的时候出错?!
CBrush brush,*oldBrush = NULL;
CBitmap bm[4];
bm[1].LoadBitmap(IDB_BITMAP1);
bm[2].LoadBitmap(IDB_BITMAP2);
bm[3].LoadBitmap(IDB_BITMAP3);
bm[4].LoadBitmap(IDB_BITMAP4);
CClientDC dc(this);
m_nCount++;
CRect rect;
rect.left = 0;
rect.top = 0;
rect.bottom = ::GetSystemMetrics(SM_CXSCREEN);
rect.right = ::GetSystemMetrics(SM_CYSCREEN);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
BITMAP bitmap;
CBitmap *pbmpOld; switch(m_nCount)
{
case 1:
bm[1].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[1]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 2:
bm[2].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[2]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 3:
bm[3].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[3]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 4:
bm[4].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[4]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 5:
m_nCount = 0;
CBrush brush,*oldBrush = NULL;
CBitmap bm[4];
bm[1].LoadBitmap(IDB_BITMAP1);
bm[2].LoadBitmap(IDB_BITMAP2);
bm[3].LoadBitmap(IDB_BITMAP3);
bm[4].LoadBitmap(IDB_BITMAP4);
CClientDC dc(this);
m_nCount++;
CRect rect;
rect.left = 0;
rect.top = 0;
rect.bottom = ::GetSystemMetrics(SM_CXSCREEN);
rect.right = ::GetSystemMetrics(SM_CYSCREEN);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
BITMAP bitmap;
CBitmap *pbmpOld; switch(m_nCount)
{
case 1:
bm[1].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[1]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 2:
bm[2].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[2]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 3:
bm[3].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[3]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 4:
bm[4].GetBitmap(&bitmap);
pbmpOld = dcMem.SelectObject(&bm[4]);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
case 5:
m_nCount = 0;
解决方案 »
- MFC或STL中有没有类似于map的数据类型,但只有“键”没有“值”的
- outlook express 导入导出问题
- 这个define应该怎么写
- bmp图片做背景,显示效果不佳
- 按钮按过一次后,再按下去,第一下按去没反应,第二下和后面又变正常了,是什么原因?如何让选择文件的对话框只能选择指定后缀名的文件?
- 请问我用VC++访问数据库,是用ODBC还是用DAO
- 换上用ADO连sql2000后就提示错误,请大侠看看什么回事!!!
- 通过VC++ 进行图象识别!
- 请问DCOM,COM+的安全机制是怎样解决的,他们与win95,win98的兼容性好吗?谢谢
- 求xp下vc6.0中OpenThread的详细用法
- 求设置Windows7 or Vista系统DPI的API。
- 大家好!我现在有一个串口通信多线程的问题需要咨询大家!
还有你的case没有跟break;所以所有case条件都执行了
bm[1].LoadBitmap(IDB_BITMAP1);
bm[2].LoadBitmap(IDB_BITMAP2);
bm[3].LoadBitmap(IDB_BITMAP3);
bm[4].LoadBitmap(IDB_BITMAP4);其它没看,这里数组溢出了,大兄弟