日期:2014-05-18  浏览次数:20769 次

winfrom 用panel 实现地图功能....
winfrom 用panel 加载一张地图,通过移动状态条来制作一个地图的功能,要求图片可以基于鼠标当前点放大缩小,可以进行鼠标拖拽....并且在放大缩小的要效果体验良好,我现在弄的会闪动,无拖拽,基于鼠标点放大缩小也没弄出来,摆脱各位指点一二....

------解决方案--------------------
闪动 采用双缓冲技术
缩放 监听鼠标滑轮滚动事件 设置panel的大小
拖放代码:
Point downP;
private void mapPanel1_MouseDown(object sender, MouseEventArgs e)
{
downP = e.Location;
}

private void mapPanel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Cursor = Cursors.SizeAll;
Point px = new Point(Location.X + e.X - downP.X,
Location.Y + e.Y - downP.Y);
mapPanel1.Left += px.X;
mapPanel1.Top += px.Y;
//外框如果有滚动条 对应改变滚动条的值
}
else
{
Cursor = Curosrs.Default;
}
}