编写ActiveX时遇到的两个问题:1子控件的位置 2鼠标位置的判断

sunnyheavn 2003-09-19 05:56:16
现在我用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的上边和左边移出时,反应比较灵敏,而从右边和下边移出时则比较迟钝。不知道还有没有其他办法?
请指教!
谢谢
...全文
77 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx05 2003-09-19
  • 打赏
  • 举报
回复
有关X,Y代表的含义,可能要根据控件的Scale值,进行相对坐标和绝对坐标的转换

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧