一、 光标控制

1、设置光标线显示长度:

COM接口

_DMxDrawX::CursorLong

_DMxDrawX::SetCursorCrossLong

C++

MxDraw::SetCursorCrossLong

设置为0表示无限长:CursorLong= 0,默认值为30。

2、设置光标矩形框大小:

COM接口

_DMxDrawX::CursorWidth

_DMxDrawX::SetCursorPickRect

C++

MxDraw::SetCursorPickRect

默认值为6 ,单位是屏幕像素大小。

二、自定义设置光标

1、COM接口,临时需要改变光标,用如下函数完成:

保存光标状态,与RestoreCursor配合使用

_DMxDrawX::SaveCursor

设置光标,从cur光标文件加载

_DMxDrawX::SetCursor

恢复光标

_DMxDrawX::RestoreCursor

2、C++接口,该函数有三个重载,从光标文件(cur)加载光标,从光标资源中加载,设置内置光标MxDraw::SetCursor。

3、得到光标函数,用于备份光标,在需要时恢复光标MxDraw::GetCursor。

三、设置默认缺省时光标

COM接口

_DMxDrawX::UseArrowCursor

1、设置默认使用箭头光标,不要使用缺省的十字光标:

1

​<param name=​​​​"UseArrowCursor"​​​ ​​value=​​​​"1"​​​​>/​

2、从文件加载一个默认光标,控件默认状态下将使用这个光标,路径是个相对MxDrawX.ocx所在目录下的文件。

3、Iniset属性,DEFAULTCURSOR=MyCursor.cur。

例如JS:

​​<param name=​​​​"Iniset"​​​ ​​value=​​​​"DEFAULTCURSOR=MyCursor.cur"​​​​>​​

C++接口

MxDraw::SetDefaultCursor

​​void​​​ ​​CMxDrawXCtrl::SetUseArrowCursor(VARIANT_BOOL newVal)​​
​​{​​
​​AFX_MANAGE_STATE(AfxGetStaticModuleState());​​
​​m_UseArrowCursor = (newVal != VARIANT_FALSE);​​
​​if​​​​(m_UseArrowCursor)​​
​​{​​
​​MxDraw::SetDefaultCursor(::LoadCursor(NULL, IDC_ARROW),m_hDrawOcx);​​
​​}​​
​​else​​
​​{​​
​​MxDraw::SetDefaultCursor(NULL,m_hDrawOcx);​​
​​}​​
​​SetModifiedFlag();​​
​​}​​

四、光标位置

1、得到位置,文档坐标,是个MxDrawPoint对象。

COM接口

_DMxDrawX::GetInputCursorPos

2、设置光标位置,文档坐标。

COM接口

_DMxDrawX::SetInputCursorPos