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

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


person user131091    schedule 27.07.2009    source источник


Ответы (3)


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

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

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

person Community    schedule 28.07.2009

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

ShowWindow(SH_HIDE);

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

person OneOfOne    schedule 28.07.2009

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

person Bob Moore    schedule 30.07.2009