您的位置:首页 > 产品设计 > UI/UE

MapX SetKeyField及GetKeyValue使用举例。

2007-10-29 22:34 627 查看











/**//*


MapInfo Products Knowledge Base


Product: MapX


Version: 5.x


Platform: Not Platform Related


Category: VC++ Code Samples


Summary:


Extract data from a layer using the keyvalue/keyfield properties.


Question:


How can the keyvalue/keyfield properties be used to extract data from a layer in C++?


Answer:


Try this code:


*/






//Counters


long numFtrs;


long numFlds;




//message buffer


CString Buffer;




CMapXLayer lyr;


CMapXFeatures ftrs;


CMapXDataset ds;




//Create a variant for the layer


VARIANT vLyr;


vLyr.vt = VT_DISPATCH;




//add the layer


lyr = m_ctrlMapX.GetLayers().Add(LPCTSTR("USA"),1);


vLyr.pdispVal = lyr;




//create the dataset


ds = m_ctrlMapX.GetDatasets().Add(miDataSetLayer, vLyr);




//init the counters


numFtrs = lyr.AllFeatures().GetCount();


numFlds = ds.GetFields().GetCount();




//build and save the feature set


//faster than rebuilding the feature every time through the loop


ftrs = lyr.AllFeatures();




//loop through the features


for (long i = 1; i <= numFtrs; i++)




...{


//reset the buffer


Buffer = "";




//loop through the fields


for (long j = 1; j <= numFlds; j++)




...{


//set the keyfield


lyr.SetKeyField(LPCTSTR(ds.GetFields().Item(j).GetName()));




//get the keyvalue for that field add it to the buffer


Buffer += ftrs.Item(i).GetKeyValue();




//add formating


Buffer += " ";


}




//display all the information for the feature


AfxMessageBox(LPCTSTR(Buffer));


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐