проверить текущее приложение нажали на панели задач? (C ++, Windows API)

Я провел много часов в Google и не нашел каких-либо результатов по этому вопросу.

У меня есть приложение, которое я хочу свернуть, когда пользователь нажимает на него на панели задач (если оно еще не свернуто). Проблема, похоже, связана с тем, что окно не имеет границ. Когда я устанавливаю для него границу, он просто отлично минимизируется при нажатии на панель задач без какого-либо вмешательства кода. Но мне нужно окно без полей, потому что я делаю «пользовательские границы», используя клиентскую область.

tl; dr, как проверить, нажимается ли текущее приложение на панели задач?

Большое спасибо!
Самуил

-2

Решение

Не нужно повозиться с панелью задач.

Просто убедитесь, что у вас есть WS_MINIMIZEBOX|WS_MAXIMIZEBOX стили, установленные для вашего окна. В противном случае ваше окно не будет обрабатывать WM_SYSCOMMAND с wParam из SC_MINIMIZE а также SC_RESTORE,

Некоторые редакторы ресурсов, такие как в Visual Studio, делают невозможным установку WS_MINIMIZEBOX|WS_MAXIMIZEBOX когда вы удаляете стандартную границу окна. Вы можете программно добавить стили обратно так:

DWORD style = GetWindowLong( hwnd, GWL_STYLE );
SetWindowLong( hwnd, GWL_STYLE, style | WS_MINIMIZEBOX | WS_MAXIMIZEBOX );
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]