【发布时间】:2012-06-14 14:31:22
【问题描述】:
WM_SIZE 有问题。我想使用PeekMessage(不是WndProc)来捕获它。 PeekMessage 永远不会收到WM_SIZE,所以我将额外的用户消息发布到窗口以使用PeekMessage 捕获它(来自WnProc 的代码):
case WM_SIZE:
PostMessageW(hwnd, WM_USER + 1, wParam, lParam);
break;
问题是我仅在窗口最大化或恢复时使用PeekMessage 收到WM_USER + 1。当窗口被粗框调整大小时没有消息(虽然我在WndProc 中收到WM_SIZE)。
【问题讨论】:
-
您从
WndProc发布您的WM_USER+1消息? -
是的,我从我的 WndProc 发布 WM_USER + 1,因为 PeekMessage 本身永远不会收到 WM_SIZE。我检查了 PostMessageW,每次调整窗口大小时都会调用它返回成功。但是 PeekMessage 只有在窗口被创建、最大化、恢复时才会收到它(而不是在通过粗框调整大小时)。
-
您很可能选择了错误的解决方案来解决您的问题。但在不了解问题的情况下,我们无法就正确的解决方案向您提供建议。