怎样获取窗口左上角坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样获取窗口左上角坐标相关的知识,希望对你有一定的参考价值。

参考技术A 1、在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口极小化为图标等。
2、获取窗口左上角坐标之前需知道该窗口的窗口句柄,因为你得确定针对哪个窗口获取左上角坐标。获取窗口句柄的方法很多。在全部命令→插件命令→window窗口插件里都有介绍。
3、知道了这个窗口的句柄,就能获取它的左上角坐标,下面是代码:
Rect
=
Plugin.Window.GetWindowRect(Hwnd)
MyArray
=
Split(Rect,
"|")
x
=
Clng(MyArray(0))
y
=
Clng(MyArray(1))//这里的(x,y)是窗口包含边框的左上角坐标,可用后台操作
Rect
=
Plugin.Window.GetClientRect(Hwnd)
MyArray
=
Split(Rect,
"|")
x
=
Clng(MyArray(0))
y
=
Clng(MyArray(1))//这里的(x,y)是窗口不含边框(称为客户区)的左上角坐标

event事件的坐标

http://www.cnblogs.com/EricaMIN1987_IT/p/3593431.html
http://blog.csdn.net/ntoskiking/article/details/52565445

clientWidth/clientHeight: 用于描述元素的内尺寸:元素内容 + 两边内边距。

clientWidth = width+padding(left、right)
clientHeight = height+padding(top、bottom)
http://www.imooc.com/code/4972
1.偏移量 offset

元素的可见大小由宽度高度决定,其中还要包括内边距、滚动条、边宽大小(不包括外边距),通过下面四个属性可以获得。

offsetWidth、offsetHeigh、offsetLeft、offsetTop

offsetHeight/offsetWidth: 表述元素的外尺寸:
元素内容 + 内边距 + 边框(不包括外边距),给出元素在页面中占据的宽度和高度的总计。

注意:把元素的边框和滚动条计算在内。

offsetWidth =  border-left-width + padding-left + width + padding-right + border-right-width;
offsetHeight =  border-top-width + padding-top + height + padding-bottom + border-bottom-width;

包含关系:
offsetLeft/offsetTop: 表示该元素的左上角(边框外边缘)与已定位的父容器(offsetParent对象)左上角的距离。
offsetParent元素是指元素最近的定位(relative,absolute)祖先元素,可递归上溯。

2.客户区域大小 clientWidth、clientHeight

 

滚动大小  scrollWidth、scrollHeight、scrollLeft、scrollTop
scrollWidth、scrollHeight、scrollLeft、scrollTop

scrollHeight/scrollWidth: 元素内容的总高度或宽度

scrollLeft/scrollTop:是指元素滚动条位置,它们是可写的(被隐藏的内容区域左侧/上方的像素)

scrollHeight:是元素的padding加元素内容的高度。这个高度与滚动条无关,是内容的实际高度。

计算方式 :scrollHeight = topPadding + bottomPadding + 内容margix box的高度。

在浏览器中的区别在于:

IE6、IE7 认为scrollHeight 是网页内容实际高度,可以小于clientHeight。

FF、Chrome 认为scrollHeight 是网页内容高度,不过最小值是clientHeight。

浏览器窗口的滚动条位置:window对象的 pageXoffset 和 pageYoffset , IE 8及更早版本可以通过scrollLeft和scrollTop属性获得滚动条位置。



clientX和clientY ----> 相对于浏览器(可视区左上角0,0)的坐标 screenX和screenY ----> 相对于设备屏幕左上角的(0,0)的坐标 offsetX和offsetY ----> 相对于事件源左上角(0,0)的坐标 pageX和pageY 相对于整个网页左上角(0,0)的坐标
x,y

获取可视窗口的高度

 function show() {

        var showId = document.getElementById("box")
        //兼容浏览器,获取可视区域的高度
        var clients = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
        //  getBoundingClientRect()这个方法返回一个矩形对象,包含四个属性:left、top、right和bottom。分别表示元素各边与页面上边和左边的距离。
        var divTop=showId.getBoundingClientRect().top;
        if(divTop<=clients){
            showId.classList.add("fadeInLeft")
        }
//        total = document.documentElement.clientHeight;
        document.getElementById("boxWrapper").style.height=clients+"px"; //设置div高度为浏览器的高度
    }
    window.onload=show
//    window.onscroll=show;

 


以上是关于怎样获取窗口左上角坐标的主要内容,如果未能解决你的问题,请参考以下文章

怎样获取一个控件相对于父窗口的坐标位置

VC++6.0 如何获取窗口客户区域在屏幕中的位置

unity 怎样正确获取2d世界坐标

python 实现超快窗口截图,自动获取当前活动窗口并展示截图

Blazor 获取 div 位置/坐标

js的窗口坐标及拖拽