现在我用Label做一个ActiveX控件。Label始终位于UserControl的正中,距离UserControl四边的距离为10。
 with Label1
 .Left = m_def_Left
 .Width = UserControl.ScaleWidth - m_def_Left * 2
 .Top = m_def_Top
 .Height = UserControl.ScaleHeight - m_def_Top * 2
end with
m_def_Left和m_def_Top是等于10的常数。
  现在我想判断鼠标是位于Label上,还是位于Label和UserControl之间的地带。应该如何实现了?
  我在UserControl的MouseMove事件中写语句进行判断。但是不知道在这个事件中传进来的X,Y是不是相对控件内部的。当UserControl的ScaleWidth为1644,Width为1692,标签的Width为1624时,鼠标从右边移入UserControl,X的值都为1632,而并不是1624+10+10=1644。那么这个X代表什么了?
  此外,我希望在鼠标离开整个控件时执行一些操作。因此我在UserControl的MouseMove事件中还利用SetCapture和ReleaseCapture函数进行判断。由于我发现标签把整个UserControl覆盖完(同高、同宽),该事件无法响应,所以才留下10的空隙(不能留太宽)。可是发现鼠标从UserControl的上边和左边移出时,反应比较灵敏,而从右边和下边移出时则比较迟钝。不知道还有没有其他办法?
请指教!
谢谢