代码禁止Vista/Win7窗口移动到屏幕边缘自动最大化
2011-02-23 11:14
507 查看
原文:http://www.68ui.com/article/essay/21.html
发现Windows7多了一个功能,当窗口移动到屏幕边缘并且鼠标也停靠在屏幕边缘的时候会自动最大化或者占屏幕一半大小,这个可以通过设置让操作系统取消这个功能,但是我们只是想让我的程序取消这个功能而不影响整个操作系统。我看到QQ可以取消这个功能,他的实现方法是取消最大化按钮,而自己去实现窗口最大化,这个当然也是一个解决方法,但是个人觉得太麻烦了。我不由想起以前学习重绘滚动条的时候处理WM_NCCALCSIZE消息的时候去掉WS_HSCROLL和WS_VSCROLL然后处理完在增加这两个风格,我就想能否在移动窗口之前去掉WS_THICKFRAME,移动完毕再恢复原来的窗口风格呢?
实践才是硬道理。
于是我处理WM_NCLBUTTONDOWN消息,当wParam==HTCAPTION的时候,去掉WS_THICKFRAME风格,然后再恢复,结果发现完美解决这个问题,比QQ的实现方法简单多了。
发现Windows7多了一个功能,当窗口移动到屏幕边缘并且鼠标也停靠在屏幕边缘的时候会自动最大化或者占屏幕一半大小,这个可以通过设置让操作系统取消这个功能,但是我们只是想让我的程序取消这个功能而不影响整个操作系统。我看到QQ可以取消这个功能,他的实现方法是取消最大化按钮,而自己去实现窗口最大化,这个当然也是一个解决方法,但是个人觉得太麻烦了。我不由想起以前学习重绘滚动条的时候处理WM_NCCALCSIZE消息的时候去掉WS_HSCROLL和WS_VSCROLL然后处理完在增加这两个风格,我就想能否在移动窗口之前去掉WS_THICKFRAME,移动完毕再恢复原来的窗口风格呢?
实践才是硬道理。
于是我处理WM_NCLBUTTONDOWN消息,当wParam==HTCAPTION的时候,去掉WS_THICKFRAME风格,然后再恢复,结果发现完美解决这个问题,比QQ的实现方法简单多了。
相关文章推荐
- C# WPF 如何禁止窗口拖到屏幕边缘自动最大化
- 窗口移动到屏幕边缘时自动排列窗口
- 解决Duilib创建的win32窗口拖到屏幕上边缘自动最大化
- [win7] 去除将窗口拖到屏幕边缘时“自动最大化”
- WPF禁止拖拽窗口到边缘自动最大化
- Win7系统如何关闭软件窗口拖出屏幕的边缘自动最大化?
- Win7中窗口被拖到屏幕边缘时自动最大化的解决方法
- WPF禁止拖拽窗口到边缘自动最大化
- 自动最大化窗口的Javascript代码
- Windows 10怎么使用智能的靠近屏幕边缘自动排列窗口?
- 窗口自动停靠至屏幕边缘
- 窗口在屏幕边缘自动隐藏的实现(动态收缩与动态弹出)
- 自动最大化窗口的Javascript代码
- WPF程序禁止win7窗口自动最大化
- 轻松关闭Windows 7窗口边缘自动最大化
- 关闭Windows7系统中窗口边缘自动最大化
- WPF程序禁止win7窗口自动最大化
- 窗口在屏幕边缘自动隐藏的实现(动态收缩与动态弹出)(转)
- C#实现窗口靠近屏幕边缘自动吸附
- WPF程序禁止win7窗口自动最大化