Foxtable(狐表)用户栏目专家坐堂 → 求助,能不能获取窗口的位置?并跟随?


  共有2392人关注过本帖树形打印复制链接

主题:求助,能不能获取窗口的位置?并跟随?

帅哥哟,离线,有人找我吗?
zto001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
求助,能不能获取窗口的位置?并跟随?  发帖心情 Post By:2019/8/4 9:24:00 [只看该作者]

求助,能不能获取窗口的位置?并跟随?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/4 20:50:00 [只看该作者]

e.form.top
e.form.left

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/5 18:44:00 [只看该作者]

是第三方的窗口,比如qq、微信。获取他的位置,然后我在指定窗口的位置达到跟随的效果

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/5 20:22:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=139043&skin=0

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/6 12:37:00 [只看该作者]

窗口找到了
然后怎么获取位置?
Dim hwnd As IntPtr = FindWindow(Nothing, "钉钉")
If hwnd <> IntPtr.Zero Then
    msgbox("找到窗口")

End If

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/6 14:04:00 [只看该作者]

需要调用系统api,系统api相关用法请自行百度解决:https://blog.csdn.net/lidawei201/article/details/9183163

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/6 21:17:00 [只看该作者]

API函数getWindowRect()的定义

Private Declare Auto Function GetWindowRect Lib "user32" (ByVal hwnd As IntPtr, ByVal lpRect As RECT) As Long

位置信息结构体

    Public Structure RECT
        Public left As Int32
        Public top As Int32
        Public right As Int32
        Public bottom As Int32
    End Structure

调用

GetWindowRect(Me.Handle, p1)

问题描述:

使用GetWindowRect函数来获取窗体的位置信息时,RECT中的left ,top ,right ,bottom 都是0




产生问题的原因:
API传递结构一般不用ByVal

解决方案:
ByVal lpRect As RECT改成ByRef lpRect As RECT



没看懂

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/6 21:18:00 [只看该作者]

全局代码
    Public Structure RECT
        Public left As Int32
        Public top As Int32
        Public right As Int32
        Public bottom As Int32
    End Structure


其他就都没看懂了


 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10397 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/8/7 11:29:00 [只看该作者]

Private Declare Auto Function GetWindowRect Lib "user32" (ByVal hwnd As IntPtr, ByVal lpRect As RECT) As Long
  Public Structure RECT
        Public left As Int32
        Public top As Int32
        Public right As Int32
        Public bottom As Int32
    End Structure


我把上面放在全局代码里面,执行
GetWindowRect(Me.Handle, p1)提示错误
未声明GetWindowRect

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/7 11:56:00 [只看该作者]

Windows api的用法请自行百度学习解决

 回到顶部
总数 15 1 2 下一页