如何阻止窗口调整大小和移动窗口?

时间:2009-01-28 00:47:20

标签: .net .net-3.5

当我尝试将我的窗口(用鼠标)移动到我的屏幕上方以便隐藏标题栏时,窗户会将其移回。如果我尝试重新调整窗口大于屏幕空间,窗口会将其调整大小以“适应”屏幕分辨率。似乎windows正在发送wm_move消息,如果它不喜欢大小或位置。有办法防止这种情况吗?

似乎我可以调用setwindowpos并将窗口放在我想要的任何尺寸的地方。

3 个答案:

答案 0 :(得分:2)

在Win32中,您将处理WM_MOVINGWM_SIZINGWM_WINDOWPOSCHANGING并将其转换为无操作。您可能还想处理WM_ENTERSIZEMOVEWM_EXITSIZEMOVE

除非你为自己编写应用程序,否则它实际上很烦人。

答案 1 :(得分:1)

什么操作系统? XP,Vista?

在XP中,您似乎可以使用鼠标将标题栏移出屏幕90%。您也可以尝试右键单击标题栏并选择移动。然后将鼠标移动到屏幕底部并移开,并使用键盘上的向上箭头将其移出。虽然不是那么方便。

编辑:第二个虽然带有箭头的Move方法不起作用,因为一旦你按Enter键就会重置它。

也许尝试一下程序网格移动。我知道你可以创建一个自定义布局,但我不确定你是否可以在屏幕外进行。

答案 2 :(得分:0)

如果你试图隐藏标题栏(称为非客户区),那么你应该能够捕获NC_PAINT消息并防止它们被处理......有一堆NC_消息控制显示窗口的非客户区域。