📄 vc-eye.txt
字号:
VC下鹰眼图实现的思路与VB是一样的,只不过VC的可视化程序没有VB高,VC更多的是利用代码来实现一定的功能。如利用下面的两句代码创建两个控件,分别用来显示主图和鹰眼图。
m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(0,0,300,300), this, IDC_MAP1);
m_eagleMapx.Create(NULL, WS_VISIBLE, CRect(0,0,400,400), this,IDC_MAP2);
另外在初始化程序时,还需创建一个图层,用于显示鹰眼图上矩形Feature。
m_eagleMapx.GetLayers().CreateLayer("RectLayer");
鹰眼图的主要功能是在主图发生变化时,在鹰眼图上用变化的矩形框来显示当前主图显示的边界。这里主要利用MapX 控件内置的消息MAPX_DISPID_MAPVIEWCHANGED映射的函数来完成该功能,当主视图发生变化时,MapX 控件发出消息,调用OnMapViewChanged()函数进行相应的处理,所以主要的代码在OnMapViewChanged()函数中实现。
ON_EVENT(CMapXSampleView, IDC_MAP1, MAPX_DISPID_MAPVIEWCHANGED, OnMapViewChanged, VTS_NONE)
//主视图发生变化时,调用如下的函数
void CMapXSampleView::OnMapViewChanged()
{
double X1,Y1,X2,Y2; //声明坐标变量
double x2,y2,x4,y4; //声明坐标变量
VARIANT scx, scy, scx1, scy1; //声明屏幕坐标变量
VARIANT mapx1,mapy1,mapx2,mapy2; //声明地图坐标变量
//声明FeatureFactory变量并获取缺省值
CMapXFeatureFactory cFactory=m_eagleMapx.GetFeatureFactory();
CMapXLayer layer; //声明图层变量
CMapXFeature feature; //声明Feature变量
CMapXFeatures features; //声明Features变量
CMapXPoints points; //声明Points变量
points.CreateDispatch(points.GetClsid());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -