阅读:842回复:0
跪求解答!急啊!关于线形图层中一个部分变色的问题。
<P> 是这样的,我有个一线型图层,这个图层是由很多线段组成的,每个线段都是一个CMoLine对象,我现在想同过一个button修改它的颜色</P>
<P>下面是我的代码:</P> <P>void CHGGISView::ChangeLineColor(int nID) { CMoRecordset recs; //图层的记录集 CMoStrings strs; //MO的字符串类 strs.CreateDispatch("MapObjects2.Strings"); //得到图层数据中NAME字段的第条记录,保存在strs中。 CMoMapLayer lay = m_map.GetLayers().Item(COleVariant("城区街道分析")); recs = lay.GetRecords(); while(!recs.GetEof()) { CMoFields mfs = recs.GetFields(); CMoField mf = mfs.Item(COleVariant("城区街道分")); int i = mf.Get_Value().intVal; CString s; s.Format("%d",i); strs.Add(s); recs.MoveNext(); } //改变区域颜色 CMoValueMapRenderer vmRend; vmRend.CreateDispatch("MapObjects2.ValueMapRenderer"); vmRend.SetValueCount(strs.GetCount()); vmRend.SetField("城区街道分"); for(int i=0; i< strs.GetCount(); i++) { //将保存的行政区名附给vmRend VARIANT V; V.vt = VT_I2; V.iVal = i; vmRend.SetValue(i, strs.Item(V)); int iIndex = atoi(vmRend.GetValue(i)); if(iIndex == nID) { vmRend.GetSymbol(i).SetColor(RGB(255,255,190)); } } lay.SetRenderer(vmRend); m_map.Refresh(); } 但是一调用这个函数整个图层都没色了。请高手指点啊。谢谢。</P> |
|