AE添加设置点要素,并添加
来源:互联网 发布:天猫和淘宝的区别 编辑:程序博客网 时间:2024/05/29 08:01
接以前做的东西,在view中添加mousedown函数,添加ISymbolptr m_isymbol私有变量,添加一个checkbox,控制是否添加。
void CAoEx1View::OnMouseDownMapcontrol1(long button, long shift, long X, long Y, double mapX, double mapY)
{
// TODO: 在此处添加消息处理程序代码
IActiveViewPtr iActiveView(m_ipMap);
IScreenDisplayPtr ipScreenDisplay;
if(iActiveView == NULL) return;
iActiveView->get_ScreenDisplay(&ipScreenDisplay);
IGeometryPtr ipGeom;
IElementCollectionPtr m_ipelementcollection(CLSID_ElementCollection);
long a;
HRESULT hr;
m_ipMap->get_LayerCount(&a);
IScreenDisplayPtr pScrD;
iActiveView->get_ScreenDisplay(&pScrD);
if(pScrD == NULL) return;
IPointPtr ipoint(CLSID_Point);
if(ipoint == NULL) return;
ipoint->PutCoords(mapX,mapY);
IRgbColorPtr prgb(CLSID_RgbColor);
prgb->put_Red(0);
prgb->put_Green(205);
prgb->put_Blue(0);
IColorPtr icolor(prgb);
IGeometryPtr iGeometry;
switch(operateStyle)
{
case 1:
{
IMarkerElementPtr imarker(CLSID_MarkerElement);
IMarkerSymbolPtr imarkersymbol(CLSID_SimpleMarkerSymbol);
if(m_isymbol != NULL)
imarkersymbol = m_isymbol;
imarker ->put_Symbol(imarkersymbol);
IElementPtr pMarkElement(imarker);
IGeometryPtr pGeometry(ipoint);
pMarkElement->put_Geometry(pGeometry);
AddCreateElement(pGeometry,iActiveView);
iActiveView->Refresh();
}
break;
}
}
void CAoEx1View::OnMouseUpMapcontrol1(long button, long shift, long X, long Y, double mapX, double mapY)
{
// TODO: 在此处添加消息处理程序代码
}
void CAoEx1View::OnDoubleClickMapcontrol1(long button, long shift, long X, long Y, double mapX, double mapY)
{
// TODO: 在此处添加消息处理程序代码
}
void CAoEx1View::OnTestMarkerStyle()
{
// TODO: 在此添加命令处理程序代码
IActiveViewPtr iActiveView(m_ipMap);
ISymbolSelectorPtr pSymbolSelector(CLSID_SymbolSelector);
ISimpleMarkerSymbolPtr psimpleMarksb(CLSID_SimpleMarkerSymbol);
VARIANT_BOOL bOK;
IUnknownPtr iunknow;
ISymbolPtr isymbol;
if(pSymbolSelector == NULL) return;
isymbol = psimpleMarksb;
pSymbolSelector->AddSymbol(isymbol,&bOK);
HRESULT hr;
hr = pSymbolSelector->SelectSymbol(0,&bOK);
if(FAILED(hr)) return;
if(bOK)
pSymbolSelector->GetSymbolAt(0,&m_isymbol);
}
void CAoEx1View::AddCreateElement(IGeometryPtr pgeomln, IActiveViewPtr iactiveview)
{
IGraphicsContainerPtr pgracont(iactiveview);
IMarkerElementPtr pmarkerelem(CLSID_MarkerElement);
if(pmarkerelem == NULL) return;
IMarkerSymbolPtr imarkerSymbol(m_isymbol);
pmarkerelem->put_Symbol(imarkerSymbol);
IElementPtr pelem(pmarkerelem);
pelem->put_Geometry(pgeomln);
pgracont->AddElement(pelem,0);
}
void CAoEx1View::OnBnClickedCheck1()
{
operateStyle = 1;
// TODO: 在此添加控件通知处理程序代码
}
注意事项:
1、ISymbolSelector需要引用displayui库,即在在 StdAfx.h 中添加: #import "D:/Program Files/ArcGIS/com/esriDisplayUI.olb" raw_interfaces_only raw_native_types no_namespace named_guids exclude("OLE_COLOR", "OLE_HANDLE", "VARTYPE")
2、m_ipmap必须初始化,如果是安装以前做的,用自己写的添加涂层的函数,m_ipmap已经初始化了,如果直接添加的AO的工具条上的添加涂层,则需要初始化m_ipmap,或者使用IActiveViewPtr iActiveView= m_ctrlMap.get_ActiveView();这句化替代 IActiveViewPtr iActiveView(m_ipMap);
- AE添加设置点要素,并添加
- AE添加设置点要素,并添加,简化
- AE添加设置线要素,并添加
- 图层中批量添加点要素
- 绘制轨迹设置途经点,并添加信息窗口
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
- AE添加CAD文件
- AE添加JPG文件
- AE添加SDE数据库
- 向已有的要素图层中添加新要素(点、线)
- AE ToolbarControl中添加工具
- AE ToolbarControl中添加工具
- AE添加引用和控件
- AE二次开发-添加制图图例
- 利用SharpMap+OGR添加并显示点
- 简单VBA添加线要素
- ARCEngine 添加创建线要素
- AE二次开发,右键图层,设置图层要素标注
- 2句话概括接口和抽象类
- utabgen.c linux 多国语言 unicode码表 和 扩展ascll 自动生成工具
- chmod的使用
- [HTML]表格Table宽度设置无效的解决方法
- C#索引的应用 -c#的特殊性
- AE添加设置点要素,并添加
- C语言复杂指针声明应如何阅读
- 深入剖析 MFC程序的启动过程
- base64转换方法
- C# 生成 rss2.0 文件生成
- Total Commander
- PE文件格式详解
- wince 英文系统显示汉字问题
- C# 委托