В чем разница между MK_CONTROL и VK_CONTROL в Win32 API?

0

В чем разница между MK_CONTROL и VK_CONTROL в Win32 API?

Во-первых, я проверил определенные значения.

MK_CONTROL: 0x0008 VK_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_.. вещь?

  • 5
    VK_CONTROL - это номер виртуальной клавиши для клавиши Ctrl. Он действителен только в сообщениях клавиатуры, таких как WM_KEYDOWN. MK_CONTROL действителен только в сообщениях мыши, этот флаг указывает, что клавиша Ctrl не работала при создании сообщения. Это поможет вам обнаружить, скажем, пользователя, удерживающего клавишу Ctrl во время нажатия. Ctrl + Click используется для расширения выбора.
  • 0
    Спасибо! Теперь я поняла!
Теги:
winapi

1 ответ

2
Лучший ответ

Значение wParam полностью зависит от того, какое сообщение вы отправили. Документация для каждого сообщения сообщает вам, какие значения имеют смысл для этого сообщения.

  • 0
    Спасибо, Стоукс!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню