为行文方便,下文中 分别用 — | \ / ╋ + 6个字符代表 左右箭头、 上下箭头、 左上右下、右上左下 、四向箭头、 十字线指针 6鼠标指针的类型 office产品有一个小缺陷:鼠标按下到放开这段时间当中 无法改变鼠标的可视形态。 比如说 在窗体的MouseMove事件中 写如下代码 Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If X > Width / 2 And MousePointer <> 6 Then MousePointer = 6 If X < Width / 2 And MousePointer <> 8 Then MousePointer = 8 End Sub 运行窗体后 鼠标在窗体上左右移动,鼠标会 在 \ / 两种形状间变换。 但当你按下鼠标按键后 再做上述动作 ,鼠标形状 会变成默认的白箭头。 调用API也不能解决这个问题。只有放开按键,鼠标指针才会按要求变化。 这个代码并没有问题,在BV6中运行,鼠标会正常变换。 通过另一个方法也可以证实这一小缺陷。 office产品对图形、控件在设计时提供了翻转调整功能,用户调整起来可以省一步操作。 注: VB6 VC6 VSTO2005 都无此功能,控件调整到最小时就无法变化了。 问题也就出在这个翻转功能上。 在窗体上画一个控件,选中它时会出现一个边框和8 个小方块,可以调整大小和位置。 鼠标在其上移动形状会随位置变化,以指示用户可以进行那个方向的调整。 鼠标移到左上角方块时 鼠标 会变成 \ ,当按下右键移动鼠标,会有一个虚框随之改变大小, 放开按键,控件会移动到虚框的位置。 问题是当按下鼠标并移动 越过控件的右边时,这时的鼠标形状应该变换为 / ,但实际上还是 \ 微软其实也意识到这一点,所以在表格界面,这种方式有所改进。 在sheet1(不仅是EXCEL其他office产品一样)上画一个控件,鼠标移动到调整框上,随位置不同会有 — | \ / ╋ 5 中状态变化。 但在— | \ / 这4 中状态下按下鼠标进行调整时,鼠标会变成 + 。这样不管你怎样移动鼠标 都是 + 不会出现VBE窗体设计时 鼠标错误指示的尴尬,面子重要,里子吗?将就一下吧。 毕竟office用户懂得打开VBE界面的人占的比例要小得多。 但在图形化指示来说,依然不完善(呵呵,纯粹属于吹毛求疵)。╋ 表示控件随意移动位置 同理 + 表示随意调整高宽 在四个角上 + 表示随意调整,这说的过去因为高和宽 都会变化。 但在四个边上就说不过去了,只有高 或者 宽 会变化。在四个边上按下鼠标,其形状还是 — 或者 | 更为准确。 这个小缺陷估计没几个人会注意到,也不影响使用。 如果不是我做相关的界面设计,客户对鼠标变化有要求,也不会留心这一点。 既然发现了,就提出来。如果微软能出相关的补丁,那就真是太给面子了 |