系统需要全屏幕显示一些地图信息,用户单击鼠标右箭,可以从popup的菜单中选择cursor一项,在屏幕上进行直线绘图,此时,程序将鼠标形状定义成十字CROSS,待选定另一个点将直线标出后,鼠标恢复原状ARROW。
    但是目前有一个问题,如果右键单击的位置离某个弹出的窗口很近很近,则鼠标不会按要求改成CROSS,但是划线的功能不受影响。此问题不是100%重现,但只要离某个窗口很近就容易出现,而且在台式机1024*768的分辨率下,几乎不能重现,但到了用户的主机,2000*2000的显示分辨率,就很容易重现。
    目前怀疑弹出的窗口在瞬间捕捉到了鼠标移动信息,将鼠标设成了默认值,但是setCaputer函数是在设置鼠标形状之前调用的,而且由于系统有很多弹出窗口,不可能每个窗口都覆盖系统的onSetCursor消息映射。暂时的解决办法是系统捕捉鼠标移动消息,判断鼠标形状的正确性。不知各位有何看法,,非常感谢!