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