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

except9 2014-07-24 12:16:44
win32 怎么取消窗口拖到屏幕上边缘自动最大化功能
...全文
1032 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屏蔽了那个自动放大的功能,注册表没有修改

15,981

社区成员

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

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