Как скрыть окно приложения win32? - PullRequest
6 голосов
/ 10 июня 2010

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

Ответы [ 5 ]

11 голосов
/ 10 июня 2010

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

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

6 голосов
/ 10 июня 2010

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

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

  • сделать окно очень маленьким
  • переместить окно за пределы видимой области рабочего стола
2 голосов
/ 10 июня 2010

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

2 голосов
/ 10 июня 2010

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

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

1 голос
/ 27 июля 2015

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

или

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

ShowWindow(hWnd, SW_HIDE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...