开发笔记

  • 首页
  • 工具箱
三味线的博客
  1. 首页
  2. Qt
  3. 正文

Qt 取消拖动窗口到屏幕边缘自动最大化

2019年08月28日 687点热度 0人点赞 0条评论

从系统级取消:

#ifndef SPI_GETWINARRANGING
#define SPI_GETWINARRANGING 0x0082
#endif
#ifndef SPI_SETWINARRANGING
#define SPI_SETWINARRANGING 0x0083
#endif
#ifndef SPI_GETSNAPSIZING
#define SPI_GETSNAPSIZING   0x008E
#endif
#ifndef SPI_SETSNAPSIZING
#define SPI_SETSNAPSIZING   0x008F
#endif
// 此项必须开启,下一项设置为关闭才有效。
SystemParametersInfo(SPI_SETWINARRANGING, 0, (LPVOID)TRUE, 0);
SystemParametersInfo(SPI_SETSNAPSIZING, 0, (LPVOID)FALSE, 0);

只在拖动窗口时设置,可以先save再restore:

#ifndef SPI_GETWINARRANGING
#define SPI_GETWINARRANGING 0x0082
#endif
#ifndef SPI_SETWINARRANGING
#define SPI_SETWINARRANGING 0x0083
#endif
#ifndef SPI_GETSNAPSIZING
#define SPI_GETSNAPSIZING   0x008E
#endif
#ifndef SPI_SETSNAPSIZING
#define SPI_SETSNAPSIZING   0x008F
#endif
// 拖拽前
BOOL fWinArrange;
BOOL fSnapSizing;
SystemParametersInfo(SPI_GETWINARRANGING, 0, (LPVOID)&fWinArrange, 0);
SystemParametersInfo(SPI_GETSNAPSIZING, 0, (LPVOID)&fSnapSizing, 0);
SystemParametersInfo(SPI_SETWINARRANGING, 0, (LPVOID)TRUE, 0);
SystemParametersInfo(SPI_SETSNAPSIZING, 0, (LPVOID)FALSE, 0);
// 拖拽后
SystemParametersInfo(SPI_SETWINARRANGING, 0, (LPVOID)fWinArrange, 0);
SystemParametersInfo(SPI_SETSNAPSIZING, 0, (LPVOID)fSnapSizing, 0);

如有必要,可手动设置:

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020年06月06日

Clownce

不吃咸鱼的猫

点赞
< 上一篇
下一篇 >

文章评论

取消回复

COPYRIGHT © 2020 Clownce. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备18010095号