程序中创建两个mapx控件对象,第二个为什么会无法显示?

yeyuboy 2005-02-28 05:10:50
我用的是VC,MDI程序,在视图中创建MAPX控件,但当打开两个视图时,第二个视图中显示不了地图(MAPX控件创建成功了)。
...全文
190 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyuboy 2005-03-01
  • 打赏
  • 举报
回复
试验后是GST文件路径的问题,不过不知道为什么?

由于GST文件的路径是在配置文件中读取的,用的是相对路径,通常在程序中转化为绝对路径的方式为:应用程序所在路径+读取的相对路径名。因此,可能的处理后路径名为:d:\myapp\exe\..\..\geoset\china.gst
而正是这种路径,导致程序的第一个mapx对象可以正确的装入GST并显示所有图层,而此时如果创建另一个MAPX对象装入该GST,则第二个MAPX对象没有任何图层。 不知道为什么?

而如果将配置文件中的路径设置为一般的绝对路径,如:d:\geoset\china.gst,则程序始终能装入GST。
Colin_Qin 2005-03-01
  • 打赏
  • 举报
回复
//创建地图控件对象
try
{
CString strLic = _T("A2B3C42T81FY2MMVJX4L9CE5LC0P0X3FG4KHIF9UU3");
BSTR bstrLic = strLic.AllocSysString();

BOOL b = m_ctrlMapX.Create(NULL, WS_VISIBLE, CRect(0,0,100,100), this,IDC_MAP , NULL, FALSE, bstrLic);
::SysFreeString(bstrLic);

if (!b) return FALSE;

}
catch (COleDispatchException *e) {

e->ReportError();
e->Delete();
}
catch (COleException *e) {
e->ReportError();
e->Delete();
}
letheanwater 2005-03-01
  • 打赏
  • 举报
回复
这个问题在这里以前好象有人问过
你可以搜索一下。

解决的方法好象是什么,在form上建立view吧.
我不大懂 .

2,155

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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