工作中遇到点击某物体要弹出自定义窗体的需求,思考了一下。
skyline中的实体有以下几个状态改变,添加,删除,开始编辑,结束编辑,基本都在Iaction接口里面,
void OnObjectAction(
string ObjectID,
IAction61 Action)
Parameters
ObjectID
The ID of the object on which the action was performed.
ISGWorld.onobjectaction(实体id,实体动作);
而获取实体id可以用鼠标点击的方式获取到。
用下面的接口
以上是skyline6以上的大致方式
现在暂时用的方式
利用弹出信息框的属性,信息框大小设置为0,
TE.OnTerraExplorerMessage += new _ITerraExplorerEvents5_OnTerraExplorerMessageEventHandler(TE_OnTerraExplorerMessage);
void TE_OnTerraExplorerMessage(string TEMessageID, string SourceObjectID, ref object pbHandled)
{
//区分TEMessageID 弹出或者执行事件。
if (TEMessageID == "0_4555778")//第一个全景的id
{
//显示自定义窗口
}
}
这样就可以弹出自定义窗口了。
标签: skyline二次开发