Skyline:SetInputMode函数在绘制多边形过程中的使用
Sgworld.Window.SetInputMode():这个方法设置鼠标输入方式。不同的输入方式允许控制鼠标的不同行为。
void SetInputMode(
MouseInputMode InputMode,
[string cursorURL = ""],
[bool AllowDrag = false])
参数
InputMode
输入模式如下:
MI_FREE_FLIGHT = 0 三维窗口的自由飞行模式
MI_COM_CLIENT = 1 由COM用户选择的自定义输入模式
MI_CONTROLLED_FLIGHT = 2 摄像机被某种操作控制(例如,飞行模式,圆模式)
MI_EDIT = 3 正处于编辑模式
MI_MEASUREMENT = 4 正处于测量模式
cursorURL
如果输入模式为MI_COM_CLIENT,参数可以指定三维窗口中鼠标图标文件位置的URL。
AllowDrag
该参数表示在屏幕上拖拽的时候三维窗口是否可以移动。
使用过程中只可以选择前两种输入模式,设置为其他时提示"InputMode 必须是 MI_FREE_FLIGHT 或 MI_COM_CLIENT",另外三种模式的使用方法未知,开始绘制时为MI_COM_CLIENT,可设置鼠标URL,结束绘制时为MI_FREE_FLIGHT 。
绑定的事件为OnLButtonClicked、OnFrame、OnRButtonUp,因为拖拽过程中总会发生鼠标按下和弹起的操作,所以左键必须绑定为点击事件,否则AllowDrag设置为true时不生效。