
1、绝对坐标:是以0原点为参考点,来定位平面内某一点的具体位置,表示方法为:a(x,y);
2、相对坐标:是以该点的上一点为参考点,来定位平面内某一点的具体位置,其表示方法为:a(@△x,△y);
效果如图
鼠标拖动效果
参考代码如下
import javafxapplicationApplication;
import javafxsceneScene;
import javafxscenelayoutPane;
import javafxscenelayoutRegion;
import javafxstageStage;
public class TestDraggedApp extends Application {
//保存鼠标点击在组件上的位置
private double offsetX,offsetY;
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
Region region = new Region();
regionsetStyle("-fx-background-color: #75c0ff;-fx-pref-width: 100;-fx-pref-height: 50");
rootgetChildren()add(region);
primaryStagesetScene(new Scene(root, 500, 320));
primaryStagesetTitle("TestDraggedApp");
primaryStageshow();
//设置鼠标按下事件
regionsetOnMousePressed(event -> {
//记录鼠标点击在组件上的位置
offsetX = eventgetX();
offsetY = eventgetY();
});
//设置鼠标拖动事件
regionsetOnMouseDragged(event -> {
//设置新的位置
double layoutX = eventgetSceneX() - offsetX;
regionsetLayoutX(layoutX);
double layoutY = eventgetSceneY() - offsetY;
regionsetLayoutY(layoutY);
});
}
public static void main(String[] args) {
launch(args);
}
}
在你的窗体代码最顶上(那就第一行吧,其实就是“声明”那里),加入以下代码:
Private Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
然后呢,我告诉你取鼠标相对控件位置的方法(注意注意:这里取得的坐标是以像素为单位的!!!而VB默认单位是“缇”即Twips。1像素=15缇):
Dim MousePos As POINTAPI
GetCursorPos MousePos
ClientToScreen 控件名hWnd, MousePos
完了以后,MousePosx和MousePosy就是鼠标相对控件的位置的横纵坐标。去掉“ClientToScreen 控件名hWnd, MousePos”这句,就是取鼠标在屏幕上的位置。
你原来的代码里有
Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
这个过程。实际上,这里的X和Y是鼠标在容器(控件)内的位置,以“缇”为单位。要转化成像素(Pixel),你得把原坐标的横纵值除以15
pos()函数就能解决问题,能够返回坐标点QPoint
如果有父窗口的话,你先试试mapToParent(),返回在父窗口中的坐标,然后再
mapToGlobal(),你试试,我现在没空弄这个,如果还不行的话,我再想想
var h = windowframenamedocumentgetElementById("input1")offsetTop;
h += documentgetElementById("iframe1")offsetTop;
documentgetElementById("div1")styletop = h+20+"px";
//left同理
以上就是关于数控编程的绝对坐标和相对坐标是怎样算出来的全部的内容,包括:数控编程的绝对坐标和相对坐标是怎样算出来的、请问javafx该如何获取一个组件的全局绝对坐标目前我想让组件随着鼠标的拖动而改变位置,(接下面)、VB API如何获取鼠标在某一控件中的绝对坐标位置值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)