VB 获取当前鼠标指向的控件句柄和在控件上的坐标值!

VB 获取当前鼠标指向的控件句柄和在控件上的坐标值!,第1张

在VB工程里新建一个Form1

在Form1上添加一个按纽Command1 和两个标签Label1和Label2

然后在Form1代码窗口里粘贴如下代码:

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim a As Single

Dim b As Single

MeLabel1 = X

MeLabel2 = Y

End Sub

按F5运行后,鼠标晃动到按纽Command1上时,可以看到Label1和Label2里面有数值在快速变化

该数字就是鼠标在按纽上的XY坐标

Private Sub Command1_MouseMove()就是Command1的鼠标移动事件

同理:

所有拥有MouseMove事件的控件都能用这个方法取得鼠标的当前坐标

我想你应该是要获取被用户点击的那张的坐标吧,首先给你的加一个监听,如果被点击了,获取手机屏幕的宽高,然后获取自身的宽高,屏幕的坐标减去的宽高就是该所在的坐标,如果你要获取相对于其他某个控件的坐标,只要获取另一个控件的坐标,然后进行计算就可以了

不嫌弃的话把下面这两个函数放到你的UIWidget里面。试用了一下好像可以,没把握=。=……[code]CCPoint UIWidget::getAbsolutePosition(){

CCPoint ret = getPosition();

CCNode cobj;

UIWidget uobj = this;

UIWidget tuobj;

bool lastIsUI = true;

while(true){

if(lastIsUI){

tuobj = dynamic_cast(uobj->getWidgetParent());

if(tuobj != NULL){

uobj = tuobj;

retx += uobj->getPosition()x;

rety += uobj->getPosition()y;

lastIsUI = true;

}else{

cobj = dynamic_cast(uobj->getUILayer());

if(cobj == NULL)break;

retx += cobj->getPosition()x;

rety += cobj->getPosition()y;

lastIsUI = false;

}

}else{

cobj = dynamic_cast(cobj->getParent());

if(cobj == NULL)break;

retx += cobj->getPosition()x;

rety += cobj->getPosition()y;

}

}

return ret;

}[/code][code]UILayer UIWidget::getUILayer(){

return m_pUILayer;

}[/code]然后通过getAbsolutePosition就可以获得一个表示坐标的ccpoint了。

以上就是关于VB 获取当前鼠标指向的控件句柄和在控件上的坐标值!全部的内容,包括:VB 获取当前鼠标指向的控件句柄和在控件上的坐标值!、安卓开发 如何获取用户点击图片的坐标、如何获取某个在层容器中的ui控件在屏幕上的绝对坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9675172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存