一:选中一个要素
BOOL SelectFeature(IMapPtr pMap,IFeaturePtr pFea,BOOL bClearOld)
{
if (pMap == NULL)
return FALSE;
IActiveViewPtr pAV=pMap;
IFeatureClassPtr pFeaCls = pFea->GetClass();
if (pFeaCls==NULL)
return FALSE;
IFeatureLayerPtr pFeaLayer(__uuidof(FeatureLayer));
pFeaLayer->putref_FeatureClass(pFeaCls);
if (pFeaLayer==NULL) return FALSE;
IFeatureSelectionPtr pFeaSelet=pFeaLayer;
if (bClearOld )
pFeaSelet->Clear();
pFeaSelet->Add(pFea);
long nSelCt=0;
pMap->get_SelectionCount(&nSelCt);
IEnvelopePtr pEnvMap;
pAV->get_Extent(&pEnvMap);
if (nSelCt > 0)
pAV->PartialRefresh(esriViewGeoSelection, NULL, NULL); // '局部刷新
else
pAV->PartialRefresh(esriViewGeoSelection, NULL, pEnvMap);
return TRUE;
}