首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >win32gui MoveWindow()没有对齐屏幕的左边缘

win32gui MoveWindow()没有对齐屏幕的左边缘
EN

Stack Overflow用户
提问于 2018-08-05 13:46:30
回答 1查看 9K关注 0票数 10

我使用win32gui将记事本窗口移动到屏幕原点(0,0),宽度和高度等于500。结果是,窗口没有移动到真正的左边框,而是移动到10 px。在右边。此外,宽度和高度不等于500 px。(~620 px. )相反)。

我使用下面的代码来生成我的结果。

代码语言:javascript
复制
import win32gui
from PIL import ImageGrab

# Open notepad.exe manually.
hwnd = win32gui.FindWindow(None, "Untitled - Notepad")
win32gui.MoveWindow(hwnd, 0, 0, 500, 500, True)
bbox = win32gui.GetWindowRect(hwnd)
img = ImageGrab.grab(bbox)

这里是屏幕上窗口的整体位置的截图:

这里有一张img的图片:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-08 21:40:13

Windows 10的不可见边框为7像素。(如果包括可见的1像素窗口边框,总计为8像素。)它是调整窗口大小的边框,位于窗口的左、右和底部边缘。

注意调整大小的光标是如何与顶部边缘反应的。那里没有看不见的边界。

一个简单的解决方法就是在MoveWindow中抵消MoveWindow中的MoveWindow

代码语言:javascript
复制
win32gui.MoveWindow(hwnd, -7, 0, 500, 500, True)

或者做一个新的功能来做到这一点:

代码语言:javascript
复制
def move_window(hwnd, x, y, n_width, n_height, b_repaint):
    win32gui.MoveWindow(hwnd, x - 7, y, n_width, n_height, b_repaint)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51694887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档