Скрытие диалогового окна при запуске приложения на панели задач

StackOverflow https://stackoverflow.com/questions/1191041

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пишу приложение на C++, которое запускается как значок на панели задач.Когда приложение первоначально запускается, основное диалоговое окно загружается и получает фокус, а это не то поведение, которое я хочу.Есть ли способ загрузить значок на панели задач без загрузки основного диалогового окна?

Это было полезно?

Решение

Если вы использовали стандартный мастер проектов mfc, то код, отображающий диалоговое окно, находится в методе InitInstance вашего приложения.

Просто закомментируйте dlg.DoModal() и m_pMainWnd = &dlg; части и все будет хорошо.

Обратите внимание, что вам, возможно, придется написать свой собственный цикл обработки сообщений, иначе ваше приложение просто закроется после этих изменений.

Другие советы

Я бы сказал, что вам нужно разделить код системного трея и код окна и отображать окно только при вызове системного трея.однако вы всегда можете позвонить

ShowWindow(SH_HIDE);

проверять http://www.codeguru.com/forum/showthread.php?t=231032

Обычный способ сделать это — создать невидимое диалоговое приложение, которое будет показывать окно только тогда, когда пользователь взаимодействует со значком на панели задач.Пример кода о том, как это сделать, см. здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top