在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);
不要把坐标固定,而是根据你的鼠标位置来修改。
我在视图中先绘制了一个地图
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);
不要把坐标固定,而是根据你的鼠标位置来修改。