阅读:1386回复:0
VC下用LayerInfo创建临时图层
<P>前几天一直在试,今天终于成功了</P>
<P>CMapXLayerInfo LayerInfo; BOOL b = LayerInfo.CreateDispatch(LayerInfo.GetClsid());</P> <P>VARIANT ParamVt; ParamVt.vt = VT_BSTR; ParamVt.bstrVal = m_strRegionLayerName.AllocSysString(); LayerInfo.AddParameter(_T("name"),ParamVt); // name LayerInfo.SetType(miLayerInfoTypeTemp); // type</P> <P>CMapXLayer hideLayer = m_ctrlMapX.GetLayers().Item(m_strRegionLayerHide);</P> <P>/* VARIANT Fields; CMapXFields fields; VARIANT vtLayer; vtLayer.vt = VT_DISPATCH; vtLayer.pdispVal = hideLayer.m_lpDispatch; CMapXDataset ds = m_ctrlMapX.GetDatasets().Add(miDataSetLayer,vtLayer); fields = ds.GetFields(); Fields.vt = VT_DISPATCH; Fields.pdispVal = fields.m_lpDispatch; LayerInfo.AddParameter(_T("Fields"),Fields); */ <A>file://Fields</A></P> <P>VARIANT features; CMapXFeatures newFS = hideLayer.AllFeatures().Clone(); features.vt = VT_DISPATCH; features.pdispVal = newFS.m_lpDispatch; LayerInfo.AddParameter(_T("FeatureS"),features); // Features</P> <P>ParamVt.vt = VT_BSTR; ParamVt.bstrVal = CString("MemTable").AllocSysString(); LayerInfo.AddParameter(_T("TableStorageType"),ParamVt);</P> <P>CMapXLayers lys = m_ctrlMapX.GetLayers();</P> <P>CMapXLayer lymem = lys.Add(LayerInfo.m_lpDispatch); </P> |
|