qq1151985918 发表于 2022-9-8 09:43:29

各位大佬,Python能不能实现像QQ一样把窗口隐藏到边缘?

各位大佬,Python能不能实现像QQ一样把窗口隐藏到边缘?有的话求个简单案例,感谢感谢!

编程追风梦 发表于 2022-9-8 10:20:14

我回答你,给我个最佳答案求求了,我要冲榜

编程追风梦 发表于 2022-9-8 10:21:23

编程追风梦 发表于 2022-9-8 10:20
我回答你,给我个最佳答案求求了,我要冲榜

实现磁性窗体基本上分为两步,第一步是实现当两个窗体靠近到一定距离以内时实现窗体间的粘贴操作,第二步是一定窗体时,同时移动与它粘在一起的其它窗体。

实现窗体的粘贴
实现粘贴的难点在于什么时候进行这个操作,假设有两个窗体Form1和Form2,移动Form2向Form1靠近,当Form2与Form1的最近距离小于distance时粘贴在一起。显然,应该在移动Form2的过程中进行判断,问题是在程序的什么位置插入判断代码呢?


合理的方法是利用系统产生的消息,但是利用什么消息呢?窗体在移动时会产生WM_WINDOWPOSCHANGING和WM_MOVING消息,移动结束后会产生WM_WINDOWPOSCHANGED和WM_MOVE消息。WM_WINDOWPOSCHANGING和WM_WINDOWPOSCHANGED消息的参数lParam是结构WINDOWPOS的指针,WINDOWPOS定义如下:
typedef struct _WINDOWPOS {
HWND hwnd; // 窗口句炳
HWND hwndInsertAfter; // 窗口的Z顺序
int x; // 窗口x坐标
int y; // 窗口的y坐标
int cx; // 窗口的宽度
int cy; // 窗口的高度
UINT flags; // 标志位,根据它设定窗口的位置
} WINDOWPOS;
可以看出,WM_WINDOWPOSCHANGED消息不仅仅在窗口移动时产生,而且在它的Z顺序发生变化时产生,包括窗口的显示和隐藏。所以我认为这个消息不是最佳选择。
WM_MOVING和WM_MOVE消息的参数lParam是一个RECT结构指针,与WM_WINDOWPOSCHANGED消息相比较为单纯,我采用的即是这个消息。


-----------------------------
用 "磁性窗体 ",到google找,很多.
有了以上的东西,用C# 的unsafe code ,调用API,不难实现



也可以用自动吸附。自动隐藏就是做两个窗口,一个主窗口,一个定位窗口。正常情况下主窗口显示,定位窗口隐藏。当主窗口的位置改动达到隐藏条件时,隐藏主窗口,显示定位窗口。而定位窗口只要接到鼠标消息,马上显示主窗口并隐藏自身,回到正常状态。定位窗的位置固定,不能由用户移动,一般只占据屏幕边很小的地方。

但由于wxPython无法处理非客户区的鼠标事件(也许有人知道,请赐教!),所以你要做无标题栏的……




好了,解答到这里吧,给我个最佳答案,谢谢了

编程追风梦 发表于 2022-9-8 10:23:41

编程追风梦 发表于 2022-9-8 10:21
实现磁性窗体基本上分为两步,第一步是实现当两个窗体靠近到一定距离以内时实现窗体间的粘贴操作,第二步 ...

最后送你一段代码

想要把控制面板隐藏,这段代码试一下
import win32con# 定义
import win32gui# 界面
import time# 时间

QQ= win32gui.FindWindow("TXGuiFoundation","QQ")
for num in range(120):
    time.sleep(1)
    if num%2 == 0:
      win32gui.ShowWindow(QQ, win32con.SW_HIDE)# 设置隐藏
    else:
      win32gui.ShowWindow(QQ,win32con.SW_SHOW)   # 设置显示

qq1151985918 发表于 2022-9-8 10:31:13

编程追风梦 发表于 2022-9-8 10:20
我回答你,给我个最佳答案求求了,我要冲榜

等我先试一下,别慌

编程追风梦 发表于 2022-9-8 10:37:49

qq1151985918 发表于 2022-9-8 10:31
等我先试一下,别慌

ok,你先试试,稳住!

编程追风梦 发表于 2022-9-8 10:38:55

qq1151985918 发表于 2022-9-8 10:31
等我先试一下,别慌

有用吗?

qq1151985918 发表于 2022-9-8 10:44:36

编程追风梦 发表于 2022-9-8 10:38
有用吗?

我下午才能试呢,现在在上班。

编程追风梦 发表于 2022-9-8 10:47:10

qq1151985918 发表于 2022-9-8 10:44
我下午才能试呢,现在在上班。

我今天放假,不上班

qq1151985918 发表于 2022-9-8 10:51:35

编程追风梦 发表于 2022-9-8 10:47
我今天放假,不上班

比不了你,周四就不上班了。羡慕。不扯了,晚上我试下。

编程追风梦 发表于 2022-9-8 10:58:33

qq1151985918 发表于 2022-9-8 10:51
比不了你,周四就不上班了。羡慕。不扯了,晚上我试下。

我是经理,想上就上,不想上班就不上(开玩笑)

hrpzcf 发表于 2022-9-8 13:15:29

https://www.codenong.com/cs106298280/

传说中的暗暗 发表于 2022-9-8 14:25:54

编程追风梦 发表于 2022-9-8 10:58
我是经理,想上就上,不想上班就不上(开玩笑)

小老弟真闲啊,居然不上班

编程追风梦 发表于 2022-9-8 14:53:20

传说中的暗暗 发表于 2022-9-8 14:25
小老弟真闲啊,居然不上班

第一我是部门经理,第二.........这里是马尼拉,安排跟国内不太一样
页: [1]
查看完整版本: 各位大佬,Python能不能实现像QQ一样把窗口隐藏到边缘?