|
onlyyou :
MapX通过提供CreateCustomTool接口实现工具和光标的绑定。该接口有9个原型,其中第三个参数指定光标:可以传入short,一个由MapX自定义的光标类型;也可以传入光标文件名,实现用户自定义光标。我用了第二种方法,先调用m_ctrlMapX.CreateCustomTool(MY_TEST_TOOL,miToolTypePoint,"d:\\test.cur")创建工具成功(因为未捕获异常),然后在UI消息响应的地方调用m_ctrlMapX.SetCurrentTool(MY_TEST_TOOL)。成功实现了自定义工具的指定,但奇怪的是光标仍为默认光标。请高手解释这种现象或指出如何通过MapX实现自定义光标(不要告诉我调用WINAPI---SetCursor()),谢谢!
实验平台:windows2003+MapX5.0+VC6.0
bbmmqaz372 :
各位好! 我在VB中实现了自定义工具使用自定义光标,部分实现代码如下,不对处请大家指正。这是我第一次回答问题。
m_ctrlMapX.CreateCustomTool(MY_TEST_TOOL,miToolTypePoint,40)
m_ctrlMapX.MouseIcon = "d:\\test.cur"
谢谢!
onlyyou :
谢谢bbmmqaz372。
我自以为对帮助文档研究得到位,却忽略了MouseIcon接口。但好像上述方法并不能实现自定义光标,我试验的结果是,在调用SetMouseIcon之前,先调用SetMousePointer,传入参数40(miCustomCursor),应该是通知MapX用户要显示自定义光标;要取消这种效果时,再调用SetMousePointer,传入参数miDefaultCursor。
bbmmqaz372
onlyyou你好!
我的以上代码是我作删除工具时用的,光标是我定制的一个红的箭头,已经实现了。我没有安装VC环境,没法在VC中试验。我看你设置了 m_ctrlMapX.MousePointer属性,那是不用的,因为这样会改变MapX控件的缺省光标,你只需要设置m_ctrlMapX.MouseIcon属性就可以了。 |