当我尝试将我的窗口(用鼠标)移动到我的屏幕上方以便隐藏标题栏时,窗户会将其移回。如果我尝试重新调整窗口大于屏幕空间,窗口会将其调整大小以“适应”屏幕分辨率。似乎windows正在发送wm_move消息,如果它不喜欢大小或位置。有办法防止这种情况吗?
似乎我可以调用setwindowpos并将窗口放在我想要的任何尺寸的地方。
答案 0 :(得分:2)
在Win32中,您将处理WM_MOVING
,WM_SIZING
和WM_WINDOWPOSCHANGING
并将其转换为无操作。您可能还想处理WM_ENTERSIZEMOVE
和WM_EXITSIZEMOVE
。
除非你为自己编写应用程序,否则它实际上很烦人。
答案 1 :(得分:1)
什么操作系统? XP,Vista?
在XP中,您似乎可以使用鼠标将标题栏移出屏幕90%。您也可以尝试右键单击标题栏并选择移动。然后将鼠标移动到屏幕底部并移开,并使用键盘上的向上箭头将其移出。虽然不是那么方便。
编辑:第二个虽然带有箭头的Move方法不起作用,因为一旦你按Enter键就会重置它。
也许尝试一下程序网格移动。我知道你可以创建一个自定义布局,但我不确定你是否可以在屏幕外进行。
答案 2 :(得分:0)
如果你试图隐藏标题栏(称为非客户区),那么你应该能够捕获NC_PAINT消息并防止它们被处理......有一堆NC_消息控制显示窗口的非客户区域。