Я рассмотрел различные решения для мигания значка приложения на панели задач, но все они приносят окно на передний план при минимизации. То, что я сделал до сих пор:Значок панели задач без приложения на передний план
void CNotifyDlg::FlashIcon()
{
FLASHWINFO info;
info.cbSize = sizeof(FLASHWINFO);
info.dwFlags = FLASHW_TRAY | FLASHW_TIMERNOFG;
info.uCount = 5;
info.dwTimeout = 0;
info.hwnd = AfxGetMainWnd()->GetSafeHwnd();
::FlashWindowEx(&info);
}
В функции, где показано диалоговое окно, я следующее:
LRESULT CBaseViewGridCombos::OnShowNotify(WPARAM id, LPARAM cnt)
{
int newCount = getNotifyDlg(id)->addCount(cnt);
getNotifyDlg(id)->setText(getNotifyText(newCount));
getNotifyDlg(id)->setDetails(getNotifyDetails());
getNotifyDlg(id)->ShowWindow(SW_SHOWNA);
getNotifyDlg(id)->FlashIcon();
//Other tries
//getNotifyDlg(id)->SetForegroundWindow();
//getNotifyDlg(id)->SetFocus();
//::SetForegroundWindow(AfxGetMainWnd()->GetSafeHwnd());
//AfxGetMainWnd()->SetForegroundWindow();
return 1;
}
Я тестирование приложения на Windows 10, так что может быть причина, хотя, из документации, этого не должно быть.
Итак, что мне не хватает или что-то не так?
С только 'FLASHW_TRAY' поведение такое же: всякий раз, когда уведомление запускает приложение на передний план. –