Как скрыть окно приложения win32?

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

5 ответов


ShowWindow(... SW_HIDE ...) не работает?

лучшая практика здесь не создавать окно в первую очередь. Ничто не заставляет вас фактически создавать окно в InitInstance. Хотя, если вы работаете с MFC, вероятно, там находится много вашей логики приложения/домена/бизнеса, тесно связанной с этими обработчиками сообщений MFC и так далее. В этом случае окно должно существовать.


Если у вас есть MFC CWnd дисплей на основе затем CWnd::ShowWindow(SW_HIDE);
Если вы используете только win32, то ShowWindow(hWnd, SW_HIDE);

другие вещи, которые люди делают в зависимости от ваших целей

  • сделать окно очень маленький
  • переместить окно с видимой области рабочего стола

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

другой способ скрыть окно и никогда его не показывать, но все же создать его-это выбрать никогда не звонить ShowWindow С SW_HIDE на нем, и создать его с CreateWindow/CreateWindowEx, а не установить WS_VISIBLE флаг в


Я думаю, что лучшим решением будет не создание окна, если это не требуется. Взгляните на основную функцию, и вы увидите код, который создает окно. Звоните, только если хотите запустить окно.


создайте окно, опустите флаг WS_VISIBLE и не вызывайте ShowWindow.

или

при вызове showWindow () добавьте параметр SW_HIDE.

ShowWindow(hWnd, SW_HIDE);