Как определить, видна ли автоскрытая панель задач или нет?

На данный момент мне нужно определить в C++/Qt, отображается ли на экране панель задач, для которой установлено значение «автоматическое скрытие», или нет. Я пробовал уже следующее решение, к сожалению, безуспешно:

  1. Проверено состояние автоматического скрытия с помощью uState = (UINT) SHAppBarMessage(ABM_GETSTATE, pabd), это возвращает только то, установлено ли свойство автоматического скрытия или нет.

  2. Получение рабочей области с SystemParametersInfo(SPI_GETWORKAREA, 0, &rectWorkArea, 0); К сожалению, рабочая область всегда имеет размер всего экрана, когда панель задач настроена на «автоматическое скрытие», даже если она действительно видна на экране.

  3. Получение AppBarData с помощью SHAppBarMessage(ABM_GETTASKBARPOS, &abd); С помощью этой функции я могу получить как размер, так и координаты панели задач, однако они всегда возвращаются так, как будто панель задач видна, даже если она скрыта.

Таким образом, с помощью этих методов я не могу сказать, видна ли панель задач с включенным «автоскрытием» в данный момент на экране или нет :-(

Буду признателен за любую помощь :-)


person tomak    schedule 10.04.2012    source источник
comment
Хм, я не знаю почему, но это похоже на код, который мог бы оказаться в блоге Рэймонда Чена. Зачем вам знать эту информацию? Возможно, есть другой способ добиться желаемого.   -  person Jonathan Merlet    schedule 10.04.2012
comment
Для чего нужно знать, видна ли панель задач?   -  person RedX    schedule 10.04.2012


Ответы (1)


person    schedule
comment
Обрабатывает ли это случай тасбара слева/справа/вверху экрана? - person RedX; 11.09.2013