MapX控件在客户机无法放大缩小,什么原因????

雪狼孤竹 2019-08-09 11:44:22
问题是这样的,关于用VS2005使用了MapX控件 MapInfo MapX V5开发的程序,编译后的程序在Win7 32位机上运行。
该机器安装了MapInfo MapX 5.0,在使用MapX控件的时候,可见,可移动,但是无法放大、缩小。

经过查找居然只在安装VS2005后,放大、缩小才可用。

我搞不懂了,没有VS2005开发软件,MapX控件居然不能正常使用?难道每个客户机都得安个开发软件?

不知道有没有了解这部分的大牛,知不知道MapX这个控件需要的VS中的哪个部分??

...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狼孤竹 2019-10-14
  • 打赏
  • 举报
回复
问题已解决,谢谢大家的帮忙!!
雪狼孤竹 2019-10-08
  • 打赏
  • 举报
回复
引用 9 楼 wanghui0380 的回复:
安装微软vc全系列运行时看看,毕竟大厂用C++多的,vc运行库没有,就有毛病了

如果喜欢玩游戏的一定明白我在说什么

百度“VC运行库合集安装包”


我试了,不是这个的关系。
wanghui0380 2019-09-27
  • 打赏
  • 举报
回复
安装微软vc全系列运行时看看,毕竟大厂用C++多的,vc运行库没有,就有毛病了 如果喜欢玩游戏的一定明白我在说什么 百度“VC运行库合集安装包”
雪狼孤竹 2019-09-27
  • 打赏
  • 举报
回复
这个问题,领导又要我解决。跟踪后发现,是以下面的方式来做的。

axMap1.ToolUsed += new AxMapXLib.CMapXEvents_ToolUsedEventHandler(axMap1_ToolUsed11);//图层放大触发
axMap1.ToolUsed += new AxMapXLib.CMapXEvents_ToolUsedEventHandler(axMap1_ToolUsed22);//图层缩小触发

//图层放大事件触发设备放大
private void axMap1_ToolUsed11(object sender, AxMapXLib.CMapXEvents_ToolUsedEvent e)
{
MessageBox.Show("放大!"); //20190000 测试
}

//图层缩小事件触发设备缩小
private void axMap1_ToolUsed22(object sender, AxMapXLib.CMapXEvents_ToolUsedEvent e)
{
MessageBox.Show("缩小!"); //20190000 测试
}

//***************************按钮触发***************************************
//放大
private void FangDa_Click(object sender, EventArgs e)
{
//改变mapx中鼠标的形状,变为自定义的放大图标
axMap1.CurrentTool = MapXLib.ToolConstants.miArrowTool;
axMap1.MousePointer = MapXLib.CursorConstants.miCustomCursor;
axMap1.MouseIcon = @"" + SanSystem.startPlace + "\\放大.cur";
}

//缩小
private void SuoXiao_Click(object sender, EventArgs e)
{
//改变mapx中鼠标的形状,变为自定义的缩小图标
if (k_count <= 0)//当没有放大的时候图标不变
{
axMap1.MouseIcon = @"";
axMap1.MousePointer = MapXLib.CursorConstants.miDefaultCursor;
axMap1.CurrentTool = MapXLib.ToolConstants.miArrowTool;
}
else
{
axMap1.CurrentTool = MapXLib.ToolConstants.miArrowTool;
axMap1.MousePointer = MapXLib.CursorConstants.miCustomCursor;
axMap1.MouseIcon = @"" + SanSystem.startPlace + "\\缩小.cur";
}
}


我不清楚axMap1.ToolUsed这部分是否有什么问题,我找到的结果就是在客户机上,没有开发环境,axMap1.ToolUsed进不去,上面红色部分,根本不执行。导致图层放大缩小实现不了。

希望了解的兄弟姐妹,棒棒忙!
雪狼孤竹 2019-08-12
  • 打赏
  • 举报
回复
引用 6 楼 上帝的亲哥哥 的回复:
用过这货,印象中我当时是用的vs 2008开发的,缩放没问题,他这个是自带很大的了一个离线地图的,应该还能找到,这个控件实在难用,用一次以后,再也不想用了

谢谢回复,MapX这控件确实挺麻烦的。
上帝的亲哥哥 2019-08-09
  • 打赏
  • 举报
回复
用过这货,印象中我当时是用的vs 2008开发的,缩放没问题,他这个是自带很大的了一个离线地图的,应该还能找到,这个控件实在难用,用一次以后,再也不想用了
雪狼孤竹 2019-08-09
  • 打赏
  • 举报
回复
引用 4 楼 HyoJung 的回复:
肯定不是这样的,我们之前使用过,只是MapX本身安装的时候对环境要求比较苛刻,但是没到说必须开发环境,应该是你自己哪里没有处理好

这个我也清楚,没有哪个软件运行是需要开发环境的。
可我这个程序,目前给我的感觉就是这种情况。
可能是MapX控件有什么设置,当初开发的时候,没注意,我刚接触这个,还是没注意。
或者说,我这个程序使用的有什么遗漏,导致它自身工具需要VS的开发环境。
所以,我想问问,有没有碰到这种情况的?
也谢谢你的回复!

大鱼> 2019-08-09
  • 打赏
  • 举报
回复
肯定不是这样的,我们之前使用过,只是MapX本身安装的时候对环境要求比较苛刻,但是没到说必须开发环境,应该是你自己哪里没有处理好
雪狼孤竹 2019-08-09
  • 打赏
  • 举报
回复
引用 1 楼 一个武小猴子 的回复:
在MFC中用鼠标滚轮响应消息不难,添加滚轮事件就ok了。
…………………………

对于这个,我也才接触,还是别人写的程序。
我只是好奇,想问问。
我这个程序里,没有滚轮事件,放大、缩小功能,都是MapX的工具,具体实现是鼠标的点击事件。我只是奇怪,这个控件的功能怎么就和VS开发环境搞到一块了。没有开发环境,就是不好使,最后不安装VS是真不好使。


引用 2 楼 一个武小猴子 的回复:
你可试试 说真的没用过你这个

嗯,没事,谢谢你的回复!我也是刚接触MapX这块。

一个武术猴子 2019-08-09
  • 打赏
  • 举报
回复
你可试试 说真的没用过你这个
引用 楼主 雪狼孤竹 的回复:
问题是这样的,关于用VS2005使用了MapX控件 MapInfo MapX V5开发的程序,编译后的程序在Win7 32位机上运行。 该机器安装了MapInfo MapX 5.0,在使用MapX控件的时候,可见,可移动,但是无法放大、缩小。 经过查找居然只在安装VS2005后,放大、缩小才可用。 我搞不懂了,没有VS2005开发软件,MapX控件居然不能正常使用?难道每个客户机都得安个开发软件? 不知道有没有了解这部分的大牛,知不知道MapX这个控件需要的VS中的哪个部分??
一个武术猴子 2019-08-09
  • 打赏
  • 举报
回复
在MFC中用鼠标滚轮响应消息不难,添加滚轮事件就ok了。 在mapx中地图实现滚轮事件的放大缩小,如果单纯的按照MFC中那样添加鼠标滚轮响应,在刚初始化的时候是正确的,好使。但是如果使用了mapx定制的工具或者自定义的工具的时候,程序就不 再响应鼠标滚轮消息。具体的原因并不清楚。我猜想是由于MFC把一些东西交给了mapx来处理。意思是在图片点击鼠标已经不归MFC定制的那些类管理,而是交给了MAPx中的消息响应机制了。 BOOL CMapXSampleMDIView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { // TODO: 在此添加消息处理程序代码和/或调用默认值 double zoom=m_ctrlMapX.GetZoom(); if(zDelta == 120) m_ctrlMapX.SetZoom(zoom+zoom*0.2); if(zDelta == -120) m_ctrlMapX.SetZoom(zoom-zoom*0.2); } return CView::OnMouseWheel(nFlags, zDelta, pt); } 经过很长时间的推迟,终于找到了解决方法。在mapx中有m_ctrlMapX.SetMousewheelSupport(miFullMousewheelSupport);提供智能鼠标的支持, miNoMousewheelSupport:无 miMousewheelNoAutoScroll:缩放/仅限滚动 miFullMousewheelSupport:全部 这样才能捕获到鼠标滚轮消息。大功告成!!!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧