Я знаю, что переменная LPARAM имеет определенные биты (внутри нее), которые идентифицируют информацию, такую как длинные нажатия клавиш и т. Д., Когда я получаю событие WM_KEYDOWN.
Поэтому я пытаюсь разбить LPARAMпеременная и просмотр групп отдельных значений битов и групп битов и этого значения (например, для просмотра 16-го и 24-го битов и значения из этого).
Моя проблема: Iне знаете, как посмотреть отдельные биты и группы битов?Как мне разбить переменную LPARAM и посмотреть на значения битов (распечатывая их в двоичном, шестнадцатеричном и десятичном виде).
Пока что у меня есть это, но работа на уровне битов меня очень смущает, так что яне уверен, действительно ли я смотрю на 24-е, 25-е и 16-е битовые значения в десятичном формате и т. д.
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_KEYDOWN:
{
// I know that a LPARAM variable is a 32 bit(or is it byte?) long variable. How would I look at the
// 16th bit value? How would I look that the value from the 16th to the 24th bit?
printf("A: %d, %d, %d\n", lParam >> 24, lParam >> 25, lParam >> 16 );
}
break;