Win32 API 中的MK_CONTROL和VK_CONTROL有什么区别

What is the difference between MK_CONTROL and VK_CONTROL in Win32 API?

本文关键字:CONTROL 什么 区别 VK MK API Win32 中的      更新时间:2023-10-16

Win32 API 中的 MK_CONTROL 和 VK_CONTROL 有什么区别?

首先,我检查了定义的值。

MK_CONTROL : 0x0008VK_CONTROL : 0x11

其次,我在这样的简单代码中进行了测试。

case WM_MOUSEMOVE:
    if(wParam & MK_CONTROL)     // This works here.
        abort();
    if(wParam & VK_CONTROL)     // This doesn't work here.
        abort();    
case WM_KEYDOWN:
    if(wParam & MK_CONTROL)     // This doesn't work here.
        abort();
    if(wParam & VK_CONTROL)     // This works here.
        abort();    
case WM_LBUTTONDOWN:
    if(wParam & MK_CONTROL)     // This doens't work here.
        abort();
    if(wParam == VK_CONTROL)    // This doesn't work here.
        abort();

wParam 值是否取决于鼠标设备的状态?

MK_..和VK_.的东西有什么区别?

wParam的含义完全取决于您收到的消息。每条消息的文档都会告诉您哪些值对该消息有意义。