MoveWindow(),跳过,闪避或绕过消息?

时间:2012-06-15 04:08:16

标签: c++ winapi user32

我正在调整MoveWindow()窗口的大小,但我不拥有该窗口。我只是从一个不同的过程中偷走它,现在我正在弄乱它的hWindow。

然而,我偷走它的过程是运行一个消息循环,处理其中一些消息(WM_MOVEWM_SIZEWM_GETMINMAXINFO等),这基本上阻止我做无论我想要什么。有时,它甚至不会让我调整它超过给定的最大值,这对于使它全屏运行至关重要。

除了使用asm之外,有什么方法可以绕过消息传递吗?

1 个答案:

答案 0 :(得分:1)

SetWindowPos有一个标志,告诉窗口你没有用它做任何事情:

SetWindowPos (hwnd, 0, x, y, width, height, SWP_NOZORDER | SWP_NOSENDCHANGING);

正如评论中所提到的,在代码中依赖这种行为而不仅仅是为了获得一些乐趣并不好,对其他窗口也不公平,你很容易遇到问题。 Raymond Chen有一些特别有趣的博客文章,即“如果有两个程序这样做会怎么样?”