菜鸟提问MFC,关于位图
创建一个MFC的单文档,在view.cpp的void CMyView::OnDraw函数中写入如下代码
ASSERT_VALID(pDoc);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
BITMAP bm;
bm.bmBits=NULL;
bm.bmBitsPixel=16;
bm.bmHeight=200;
bm.bmPlanes=1;
bm.bmType=0;
bm.bmWidth=100;
bm.bmWidthBytes=200;
CBitmap Bitmap;
Bitmap.CreateBitmapIndirect(&bm);
CBitmap *pOldBitmap=MemDC.SelectObject(&Bitmap);
Bitmap.GetObject(sizeof(BITMAP),&bm);
unsigned char * pData=new unsigned char [bm.bmHeight*bm.bmWidthBytes];
for(int y=0;y<bm.bmHeight;y++)
{
for (int x=0;x<bm.bmWidth;x++)
{
pData[x*3+y*bm.bmWidthBytes]=0;
pData[x*3+1+y*bm.bmWidthBytes]=0;
pData[x*3+y*bm.bmWidthBytes]=255;
}
}
Bitmap.SetBitmapBits(bm.bmHeight*bm.bmWidthBytes,pData);
pDC->BitBlt(10,10,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBitmap);
delete [] pData;
目的是想练习一下位图的创建是使用,生成解决方案的时候提示成功,没有错误,但是调试执行的时候窗口刚现出来,就提示说“TODO:<文件说明>已停止工作”,把这段代码去掉是能运行的,我看不出来哪里错了,高手们指点一下~~~~