在vc中实现图像在鼠标的拖动下移动!

在vc中实现图像在鼠标的拖动下移动!急~~在线等!
我在视图中先绘制了一个地图
void   CMapView::OnDraw(CDC*   pDC)
{
CDocument*   pDoc   =   GetDocument();
                  CDC       MemDC;      
                  CBitmap       bitmap;      
       
                  bitmap.LoadBitmap(IDB_BITMAP2);      
MemDC.CreateCompatibleDC(pDC);      
CBitmap*   pOldbit=MemDC.SelectObject(&bitmap);      
CRect   rect;      
GetClientRect(&rect);      
pDC-> BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);      
MemDC.SelectObject(pOldbit);      
}
现在我想在鼠标拖动的情况下实现地图的移动!
oid   CMapView::OnMouseMove(UINT   nFlags,   CPoint   point)  
{
//   TODO:   Add   your   message   handler   code   here   and/or   call   default
                  int   x,y;
x=point.x;
y=point.y;
                  //如何在这里添写代码??????
CView::OnMouseMove(nFlags,   point);
}
高手能不能帮我在这添加一下。
另问:怎么让鼠标放到图像上就成手状?
再问:如何点击放大或缩小按钮可实现图像的放大缩小????
急!求救各位了。。。如能给代码,我在这里不甚感激!

------解决方案--------------------
.h:
POINT pt;
.cpp:
CMapView::CMapView
{
pt = CPoint(0, 0);
}

pDC-> BitBlt(pt.x, pt.y, rect.Width(), rect.Height(), &MemDC, 0, 0, SRCCOPY);

void CMapView::OnMouseMove(UINT nFlags, CPoint point)
{
pt = point;
Invalidate(true);

CView::OnMouseMove(nFlags, point);
}
------解决方案--------------------
又没说放在外面,放在你自己贴图的地方。也就是说,你这一句
pDC-> BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
不要把坐标固定,而是根据你的鼠标位置来修改。