为什么我的窗口在自己处理WM_KEYDOWN时没有得到WM_SIZE命令?

Why doesn't my window get WM_SIZE command when handling WM_KEYDOWN myself?

本文关键字:WM 命令 SIZE KEYDOWN 窗口 我的 自己 为什么 处理      更新时间:2023-10-16

如果我使用此方法(或最终使用相同的return 0 WM_KEYUP,我将无法获取WM_SIZE命令:

case WM_KEYDOWN: {
    keys[wParam] = 1;
    return 0;
}

但是当我使用它时,它给了我WM_SIZE命令:

case WM_KEYDOWN: {
    keys[wParam] = 1;
    break;
}

有人可以解释为什么会这样吗?

在没有看到整个代码的情况下,我的猜测是 return 语句阻止WM_KEYDOWN消息传递到默认消息处理程序,例如 DefWindowProc() ,因此窗口实际上并不处理击键并采取生成WM_KEYUPWM_SIZE消息所需的任何操作。