5

有谁知道窗口最大化时发送的 WM_MESSAGE(通过在标题栏中按下最大化按钮,或者通过双击标题栏?)

是否有关于按下最大化按钮的 Windows 消息?

Win32/C++,谢谢。

4

2 回答 2

4

您会在 wParam 中获得值为 SIZE_MAXIMIZED的WM_SIZE消息

编辑

下面的@jamesdlin 评论让我注意WM_WINDOWPOSCHANGED文档,该文档指出(强调我的):

备注 默认情况下,DefWindowProc 函数将 WM_SIZE 和 WM_MOVE 消息发送到窗口。如果应用程序处理 WM_WINDOWPOSCHANGED 消息而不调用 DefWindowProc,则不会发送 WM_SIZE 和 WM_MOVE 消息。在 WM_WINDOWPOSCHANGED 消息期间执行任何移动或大小更改处理而不调用 DefWindowProc 会更有效。

谢谢詹姆斯!

于 2012-11-21T02:06:57.490 回答
1

我最近处理了这个问题,我决定的方法是检查IsZoomed响应WM_WINDOWPOSCHANGED,将其结果与前一个结果进行比较以检测何时发生转换,然后转发WM_WINDOWPOSCHANGED到默认窗口过程。

如果您可以完全控制应用程序中的消息处理,并且知道没有(也永远不会)WM_WINDOWPOSCHANGED抑制WM_MOVE/的处理程序WM_SIZE,那么您应该能够直接在WM_SIZE处理程序中处理它,如jachguate 的回答中所述.

于 2012-11-21T05:28:08.347 回答