juaze
路人甲
路人甲
  • 注册日期2007-05-09
  • 发帖数7
  • QQ
  • 铜币136枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1379回复:1

VC+MapX鹰眼实现 1

楼主#
更多 发布于:2007-05-16 21:05
<P>在同一个View窗口下家两个CMapX控件,一个称为主图,一个称为鹰眼图。</P>
<P>            CMapX m_ctrlMapX; ///主图</P>
<P>            CMapX m_eagleMapX; ///鹰眼图</P>
<P>            注意事项:在View里的OnCreate函数一定要想创建m_eagleMapX,这样才能看见鹰眼图。既如此:</P>
<P>            m_eagleMapX.Create(NULL, WS_VISIBLE, CRect(0, 0, 120, 120), this, <BR>            IDC_MAP_EAGLE);<BR>            m_eagleMapX.SetGeoSet(NULL);</P>
<P>            m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(0, 0, 100, 100), this, <BR>            IDC_MAP);<BR>            m_ctrlMapX.SetGeoSet(NULL);</P>
<P>            接下来,可以在主图里挑几层加到鹰眼图中(区域图层)</P>
<P>            再在消息中映射几个消息:</P>
<P>            ON_EVENT(CMTRSView, IDC_MAP_EAGLE, DISPID_MOUSEMOVE /* MouseMove */, <BR>            onMouseMoveEagleMap, VTS_I2 VTS_I2 VTS_R4 VTS_R4)<BR>            ON_EVENT(CMTRSView, IDC_MAP_EAGLE, DISPID_MOUSEDOWN /* MouseDown */, <BR>            onMouseDownEagleMap, VTS_I2 VTS_I2 VTS_R4 VTS_R4)<BR>            ON_EVENT(CMTRSView, IDC_MAP_EAGLE, DISPID_MOUSEUP /* MouseUp */, <BR>            onMouseUpEagleMap, VTS_I2 VTS_I2 VTS_R4 VTS_R4)<BR>            最后实现这几个函数:</P>
<P>            void CMTRSView:nMouseUpEagleMap(short Button, short Shift, float X, <BR>            float Y)<BR>            {<BR>            ///用户单击导航图上某点的处理<BR>            if(strMouseState == "Begin") <BR>            {<BR>            double dblMapX1, dblMapY1;<BR>            ///求出该点的地理坐标<BR>            m_eagleMapX.ConvertCoord(;X, ;Y, ;dblMapX1, ;dblMapY1, <BR>            miScreenToMap);<BR>            ///设置主图的地理坐标<BR>            m_ctrlMapX.SetCenterX(dblMapX1);<BR>            m_ctrlMapX.SetCenterY(dblMapY1);<BR>            }<BR>            ///用户在导航图上框出矩形区域时的处理<BR>            if(strMouseState == "Move")<BR>            {<BR>            Single sngXMax, sngXMin, sngYMax, sngYMin;<BR>            if(PreX < X) <BR>            {<BR>            sngXMax = X;<BR>            sngXMin = PreX;<BR>            }<BR>            else<BR>            {<BR>            sngXMax = PreX;<BR>            sngXMin = X;<BR>            }</P>
<P>            if(PreX < Y)<BR>            {<BR>            sngYMax = Y;<BR>            sngYMin = PreY;<BR>            }<BR>            else<BR>            {<BR>            sngYMax = PreY;<BR>            sngYMin = Y;<BR>            }<BR></P>
喜欢0 评分0
whmwxhanshan123
路人甲
路人甲
  • 注册日期2006-06-17
  • 发帖数3108
  • QQ
  • 铜币6445枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-05-20 19:57
<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部