WinApi Не работают кнопки, у которых HMENU не равно 0

начал разбираться с WinApi, но стакнулся с странной проблемой. Я создаю матрицу из кнопок с помощью цикла. При нажатии кнопки меняют надпись, но это работает только на кнопки с HMENU равным NULL. Остальные игнорируются. Много искал на форумах и экспериментировал, но не смог понять почему так. Код цикла, где я создаю кнопки:

    HWND buttons[MAXL * MAXE];
for (int j = 0; j < MAXL; j++)
{
    for (int i = 0; i < MAXE; i++)
    {
        int x = 0;
        int y = 0;
        int size = 60;
        int fix = 5;
        static int ID_T = -1;
        buttons[j * MAXE + i] = CreateWindow(
            L"button",
            L"0",
            WS_VISIBLE | WS_CHILD,
            x + (size * countBut) + (fix * countBut), (y + size + fix) * j, size, size,
            hwnd,
            (HMENU)ID_T,
            (HINSTANCE)GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
            NULL
        );
        countBut++;
        ID_T++;
        if (buttons[j * MAXE + i] == NULL) return -1;
    }
    countBut = 0;
}

Странно, но я нашёл решение через 10 минут после того как выложил пост. В обработчике WM_COMMAND во внутреннем операторе switch поменял LOWORD(wParam) на HIWORD(wParam).


Ответы (0 шт):