Как я могу вручную нажимать заголовок окна и кнопку панели задач?
Как мне закрасить заголовок окна и кнопку панели задач вручную? Commenter Джонатан Шеперс задается вопросом о тех программы, которые запускают свою панель задач на неопределенное время, переопределяя счетчик флэш-памяти по умолчанию SysteParametersInfo (SPI_SETFOREGROUNDFLASHCOUNT).
Функция FlashWindowEx и ее более простой предшественник FlashWindow позволяет программа закроет заголовок окна и кнопку панели задач вручную. Окно менеджер мигает надпись автоматически (и Explorer следует заголовок, мигая панель задач), если вызов программы SetForegroundWindow, когда он не имеют разрешение выходить на передний план, и это автоматическое мигание, что SPI_SETFOREGROUNDFLASHCOUNT управления настройками.
В целях иллюстрации я буду показать мигание заголовка вручную. Это, вообще говоря, не рекомендуется, но поскольку вы спросили, Я покажу вам, как это сделать. И затем обещайте вы не сделаете этого.
Начните с программы с нуля и сделайте это простое изменение:
void
OnSize(HWND hwnd, UINT state, int cx, int cy)
{
if (state == SIZE_MINIMIZED) {
FLASHWINFO fwi = { sizeof(fwi), hwnd,
FLASHW_TIMERNOFG | FLASHW_ALL };
FlashWindowEx(&fwi);
}
}
Скомпилируйте и запустите эту программу, затем свести к минимуму. Когда вы это сделаете, панель задач кнопка мигает бесконечно, пока вы не нажмите здесь. Программа отвечает быть минимальным, вызвав Функция FlashWindowEx, запрашивающая все возможное (в настоящее время заголовок и кнопка панели задач), чтобы вспыхнул, пока окно не дойдет до на переднем плане.
Другие участники FLASHWINFO структуры позволяют настроить более мягкое поведение, например управление частотой вспышки и количество вспышек. и если вы действительно хочу взять под контроль, вы можете используйте FLASHW_ALL и FLASHW_STOP, чтобы включить заголовок и кнопка на панели задач и так, как вы этого хотите. (Кто знает, может быть, вы хотите отправить сообщение в коде Морзе.)
Опубликовано в понедельник, 12 мая 2008 г. 7:00 by oldnewthing Подано в: Код