(1)创建基于单文档界面的MFC应用程序,项目名称MyDraw
     为单文档添加一个菜单选项“位图(D)”,下拉菜单为“水平右扫(R)”、“水平左扫(L)”、“百叶窗(B)”、“雨滴效果(Y)” 属性设置如下:
          Caption                             ID
       水平右扫(R)                     ID_VIEW_RIGHT
       水平左扫(L)                     ID_VIEW_LEFT
       百叶窗(B)                       ID_VIEW_BYC
       雨滴效果(Y)                     ID_VIEW_YDXG
(2)首先在CMyDrawView的类定义中添加变量
       CBitmap m_bitmap;
int width;
int height;
CDC memdc;
int showtype;
   接着,在类CMyDrawView的类构造函数中添加如下代码,实现位图的载入,并初始位图的显示类型
CMyDrawView::CMyDrawView()
{
// TODO: add construction code here
HBITMAP hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),"Sample.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_bitmap.Attach(hbitmap);
BITMAP bm;
m_bitmap.GetBitmap(&bm);
width=bm.bmWidth;
height=bm.bmHeight;
showtype=0;
}接着为“位图(D)”菜单的4个下拉菜单项添加消息处理函数对应关系如下
          下拉菜单项                        消息处理函数
       水平右扫(R)                       OnViewRight
       水平左扫(L)                       OnViewLeft
       百叶窗(B)                         OnViewByc
       雨滴效果(Y)                       OnViewYdxg为每一个消息处理函数添加代码如下
void CMyDrawView::OnViewRight() 
{
// TODO: Add your command handler code here
showtype=1;
Invalidate();
}void CMyDrawView::OnViewLeft() 
{
// TODO: Add your command handler code here
showtype=2;
Invalidate();
}void CMyDrawView::OnViewByc() 
{
// TODO: Add your command handler code here
showtype=3;
Invalidate();
}void CMyDrawView::OnViewYdxg() 
{
// TODO: Add your command handler code here
showtype=4;
Invalidate();
}
编写函数OnDraw()的代码如下
void CMyDrawView::OnDraw(CDC* pDC)
{
CMyDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(!memdc.GetSafeHdc())
{
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(&m_bitmap);
}
switch(showtype)
{
int i;
case 1:
for(i=0;i<width;i++)
{
pDC->BitBlt(i,0,1,height,&memdc,i,0,SRCCOPY);
Sleep(1);
};
break;
case 2:
for(i=width-1;i>=0;i--)
{
pDC->BitBlt(i,0,1,height,&memdc,i,0,SRCCOPY);
Sleep(1);
};
break;
case 3:
for(i=0;i<20;i++)
{
int num=width/20;
for(int j=0;j<num;j++)
{
pDC->BitBlt(j*20+i,0,1,height,&memdc,j*20+i,0,SRCCOPY);
}
Sleep(10);
};
break;
case 4:
for(i=height-1;i>=0;i--)
{
for(int j=0;j<i;j++)
{
pDC->BitBlt(0,j,width,1,&memdc,0,i,SRCCOPY);
}
Sleep(1);
};
break;
default:
pDC->BitBlt(0,0,width,height,&memdc,0,0,SRCCOPY);
break;
}}(3)将位图文件“Sample.BMP”存放到项目MyDraw的Debug文件夹中
运行程序  编译链接都能通过  但运行时报如下错误   小白初学求大神指教!!!MFCVC位图操作错误Bitmap