Скрытие диалогового окна при запуске приложения на панели задач
-
19-09-2019 - |
Вопрос
Я пишу приложение на C++, которое запускается как значок на панели задач.Когда приложение первоначально запускается, основное диалоговое окно загружается и получает фокус, а это не то поведение, которое я хочу.Есть ли способ загрузить значок на панели задач без загрузки основного диалогового окна?
Решение
Если вы использовали стандартный мастер проектов mfc, то код, отображающий диалоговое окно, находится в методе InitInstance вашего приложения.
Просто закомментируйте dlg.DoModal()
и m_pMainWnd = &dlg;
части и все будет хорошо.
Обратите внимание, что вам, возможно, придется написать свой собственный цикл обработки сообщений, иначе ваше приложение просто закроется после этих изменений.
Другие советы
Я бы сказал, что вам нужно разделить код системного трея и код окна и отображать окно только при вызове системного трея.однако вы всегда можете позвонить
ShowWindow(SH_HIDE);
проверять http://www.codeguru.com/forum/showthread.php?t=231032
Обычный способ сделать это — создать невидимое диалоговое приложение, которое будет показывать окно только тогда, когда пользователь взаимодействует со значком на панели задач.Пример кода о том, как это сделать, см. здесь.