win32 怎么取消窗口拖到屏幕上边缘自动最大化功能

except9 2014-07-24 12:16:44
win32 怎么取消窗口拖到屏幕上边缘自动最大化功能
...全文
959 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-08-30
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
xiaohuh421 2014-07-29
  • 打赏
  • 举报
回复
引用 2 楼 except9 的回复:
除了修改注册表没其他办法吗。我看了下QQ屏蔽了那个自动放大的功能,注册表没有修改
因为QQ已经没有使用系统的非客户区框架. 你自己写一个无边框的窗口也不会自动缩放的.
「已注销」 2014-07-29
  • 打赏
  • 举报
回复
如果你只是想在窗口拖动的时候进行处理,可以先获取原值,关闭此功能,当用户拖拽完之后再设置回去。
#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);
「已注销」 2014-07-29
  • 打赏
  • 举报
回复
如果想从系统级别取消这个设置,可以这样:
#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);
如果你只是想在
csdn_boss 2014-07-29
  • 打赏
  • 举报
回复
无边框的就行了。
ohyeszq 2014-07-24
  • 打赏
  • 举报
回复
你的是win7系统吧?那是win7系统自带功能,可以屏蔽,需要修改注册表,百度一下吧。 win32程序本身没有这个功能。
邓学彬 2014-07-24
  • 打赏
  • 举报
回复
取消可调边框(WS_SIZEBOX、WS_THICKFRAME)样式就不会了
ohyeszq 2014-07-24
  • 打赏
  • 举报
回复
我随手建了个工程试了试,没有自动放大。估计你的工程某些地方设置了。 实在不行在OnSysCommand中截取一下最大化消息SC_MAXIMIZE,处理一下。
except9 2014-07-24
  • 打赏
  • 举报
回复
除了修改注册表没其他办法吗。我看了下QQ屏蔽了那个自动放大的功能,注册表没有修改
DisplayFusion 中文版是一款多显示器管理工具,如果你使用双显示器,那么可能会遇到这样一个问题:如何给两个显示器设置使用不同的墙纸。或者,如果两个甚至更多显示器的分辨率和纵横比都各不相同,如何让同一张墙纸在不同显示器上获得最完美的显示方式。如果单纯借助 Windows 本身的功能,这些目的并不好实现,不过好在有软件可以解决这一难题。那就是 DispayFusion,其实除了用更个性化的方式设置墙纸外,该软件的多显示器窗口管理功能也很出色,例如只要用拖动的方式,就可以将一个已经被最大化窗口在不同显示器之间拖动(正常情况下,在 Windows 中,最大化窗口是无法实现这一操作的)。或者通过窗口吸附功能,让距离显示器边沿达到预定像素数距离之后,自动吸附到当前显示器的边沿。 DisplayFusion 中文版 DisplayFusion 功能: DisplayFusion 可以让您的多显示器环境更易用。通过 多显示器任务栏、标题栏按钮,以及完全可定制的热键等强大功能,DisplayFusion 让多显示器的管理工作更简单。看看下面列举的部分功能,了解 DisplayFusion 能帮您做什么! 多显示器任务栏 通过在每个显示器添加一个任务栏,让您的窗口管理更有条理。每个显示器上的任务栏都可配置为显示所有窗口,或只显示位于该显示器的窗口。通过按钮分组、自动隐藏、窗口预览、快捷键、开始按钮等功能帮您更轻松操作程序窗口。 不可思议的桌面墙纸 DisplayFusion 包含强大的墙纸功能,可供您使用您计算机中的图片,或通过在线源直接加载。标题、搜索、缩放、裁剪、定位,以及 色调调整,完全如您所需。 强大功能 DisplayFusion 内置超过 30 种预配置的功能,您还可以创建自定义的自定义功能。通过创建功能即可加载墙纸或显示器配置文件,四处移动窗口,更改窗口透明度,切换 DisplayFusion 的功能,此外还能做到更多。 任何功能,包括您创建的自定义功能都可以分配标题栏按钮,借此即可实现更快捷的鼠标访问,惯用键盘的用户也可以分配自定义的键盘快捷键。功能还可以分配给 DisplayFusion 多显示器任务栏的跳转列表菜单,这样就可以在应用程序最小化的状态下直接运行。 精确的监视器控制 使用 DisplayFusion 设置您的监视器配置。配置分辨率、色深、刷新率,以及方向。您甚至可以将配置保存为显示器配置文件,随后即可使用热键或标题栏按钮直接加载。将墙纸配置文件与您的显示器配置文件链接在一起,即可根据您所连接的显示器自动加载桌面墙纸。5.1 新功能: 分割监视器允许您将屏幕划分成多个「虚拟」屏幕含自己的任务栏、壁纸和屏幕保护。 支持 Nvidia Surround 和 AMD Eyefinity 设定! 强大 Windows 8 调整 DisplayFusion 的 Windows 8 调整额外选项,以便可以自定义 Windows 8。 忽略开始界面直接进入桌面,移动 [Power User] 菜单 (Win + X) 到当前鼠标指针位置,传送 “Metro” Apps 到桌面窗口,以及更多! 窗口吸附 DisplayFusion 的窗口吸附功能使得您可以更容易将窗口对其放置,或者让多个窗口靠近显示器边框排列。只要将窗口拖拽到显示器或其他窗口边缘,然后松开鼠标按键,即可让 DisplayFusion 将窗口吸附到这个位置。该功能包含丰富的配置选项,如果需要还可以排除指定的程序。 窗口管理 使用 DisplayFusion 的窗口管理功能在您的显示器之间轻松移动窗口。无论您使用简单的中键点击移动,或更高级的最大化窗口拖拽,您桌面窗口的管理都未能如此简单。您甚至可以在移动或调整窗口大小时看到桌面提示,帮您对窗口进行更精确的定位。5.1 新功能: 自动移动子对话框和窗口到上层窗口相同的监视器。 鼠标管理选项允许您以鼠标滚轮卷动非作用中窗口、在屏幕边缘循环鼠标光标、和防止鼠标光标固定在未对齐的屏幕边缘窗口位置 窗口位置功能可供您指定自己希望将所选程序在哪个窗口上打开。您可以通过指定最大化、居中、跨越,或“运行热键”等操作对其进行定制。您可以让所选程序的所有窗口在指定显示器上打开,或只在第一个显示器上打开。 Windows 登录背景 使用 DisplayFusion 强大的 Windows 登录背景图像更改程序对您的登录界面进行定制。从您的计算机中选择图片,或者使用 DisplayFusion 所支持的任何在线来源选择。对图片的位置和颜色(灰度、褐色调等)进行定制,充分满足您的需求。 多显示器屏幕保护 为何只满足于在主显示器上显示的一个屏幕保护?通过使用 DisplayFusion,您可以让屏幕保护跨

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧