0

我正在调整一个窗口的大小,MoveWindow()但我不拥有那个窗口。我只是从另一个进程中偷了它,现在我在搞乱它的 hWindow。

然而,我从中窃取它的过程正在运行一个消息循环,处理其中一些消息(WM_MOVEWM_SIZEWM_GETMINMAXINFO等),这基本上阻止了我对它做任何我想做的事情。有时,它甚至不允许我将它的大小调整到超过给定的最大值,这是让它全屏运行的关键。

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

4

1 回答 1

1

SetWindowPos有一个标志不告诉窗口你正在用它做某事:

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

正如评论中所提到的,依靠代码中的这种行为来获得更多乐趣是不好的,对其他窗口也不公平,而且您很容易遇到问题。Raymond Chen对此有一些特别有趣的博客文章,例如“如果两个程序这样做会怎样?”

于 2012-06-15T05:10:12.850 回答