winapi — событие в приложении, свернутое в C ++ Windows API

Есть ли сигнал или событие в Windows Desktop API, которое может сообщить мне, находится ли мое приложение в свернутом состоянии? Я просмотрел документацию по msdn и нашел только события минимизации, которые вызывают, поскольку приложение минимизируется, а не тогда, когда приложение уже завершило минимизацию и находится в окончательном свернутом состоянии.

Мне нужно отключить другую операцию (снимок экрана), когда я знаю, что окно, которое я установил, свернуто и находится вне пути захвата экрана. Я использую сообщение WM_SIZE, чтобы проверить, свернуто ли окно, затем запускаю захват экрана. Моя проблема заключается в том, что я все еще вижу, как закрывается окно приложения, когда делается снимок экрана (то есть анимация минимизации, выполняемая большинством окон приложения), даже несмотря на то, что я получил сообщение SIZE_MINIMIZED посредством обратного вызова ProcessWindowMessage. Мне нужно кое-что, чтобы сказать мне, что приложение полностью свернуто, а не в виде захвата экрана, который я беру со всего рабочего стола.

Спасибо!

0

Решение

Вы, вероятно, хотите IsIconic(); если ваше окно свернуто, то API вернет ненулевое значение.

2

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

Я полагаю, что вы ищете WM_SIZE сообщение. Он будет отправлен после изменения размера окна. Если ваше окно было свернуто wParam переменная должна быть равна SIZE_MINIMIZED

1

Вы можете попробовать решение, упомянутое здесь:
Как я могу определить, когда мое приложение свернуто?

~ Чик:

switch (message)
{
case WM_SYSCOMMAND:
if ((wParam & 0xFFF0) == SC_MINIMIZE)
{
// shrink the application to the notification area
// ...

return 0;
}
break;
}

Или попробуйте функцию GetWindowPlacement:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms633518(v=vs.85).aspx

~ надрез

Извлекает состояние показа и восстановленные, свернутые и развернутые позиции указанного окна.

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