最近给法国的一个客户制作SuperMap相关范例程序,主要使用SuperMap的布局进行排版和出图。在这个范例的应用过程中,有一个比较常用的功能,就是根据预先设置好布局中的文本元素标识来设置程序中动态组织的文本内容。
下面这个就是主要的函数段。
void CADlg::SetTheValue(CString strTag,CString strValue)
{
long iCnt,i;
CsoLytElements objLytEles;
CsoLytElement objLytEle;
CsoLytText objLytTxt;
objLytEles=m_SuperLayout.GetElements();
iCnt=objLytEles.GetCount();
for (i=1;i<=iCnt;i++)
{
objLytEle=objLytEles.GetItem(i);
if (objLytEle.GetTag()==strTag)
{
objLytTxt.AttachDispatch(objLytEle,FALSE);
objLytTxt.SetText(strValue);
i=iCnt+1;
}
}
}
以上函数段可以用在根据布局文本元素标识(Tag)设置SuperMap 布局中文本元素的内容。
主要使用VC开发,CADlg是对话框类,SetTheValue为函数名,CString strTag为文本元素的标识参数,CString strValue为需要设置文本元素的内容值。
使用时可以直接类似SetTheValue("ADDRESS","7/F Tower B,Technology Fortune Center,No.8 Xueqing Road"); //设置ADDRESS标识的文本元素内容为“7/F Tower B,Technology Fortune Center,No.8 Xueqing Road”