如何隐藏win32应用程序窗口?

时间:2010-06-10 17:10:32

标签: c++ mfc winapi

我希望通过传入参数以静默模式运行应用程序,否则我将显示该窗口。

5 个答案:

答案 0 :(得分:11)

ShowWindow(... SW_HIDE ...)不起作用?

这里的最佳做法是不首先创建窗口。没有什么可以强迫你在InitInstance中实际创建一个窗口。虽然如果你正在使用MFC,很可能你的应用程序/域/业务逻辑很多,紧密耦合到那些MFC消息处理程序等等。在这种情况下,窗口将需要存在。

答案 1 :(得分:6)

如果你有基于MFC CWnd的显示,那么CWnd::ShowWindow(SW_HIDE);
如果你只使用win32,那么ShowWindow(hWnd, SW_HIDE);

人们根据您的目标做的其他事情

  • 使窗口非常小
  • 将窗口移出可见桌面区域

答案 2 :(得分:2)

好吧,如果传入此参数,您可以决定不创建一个窗口,否则您可以尝试使用窗口句柄和SW_HIDE调用ShowWindow参数,看看是否符合你的要求。

另一种隐藏窗口并且从不显示窗口但仍然创建窗口的方法是选择永远不要在ShowWindow上调用SW_HIDE,并使用CreateWindow创建窗口/ CreateWindowEx,并且未在WS_VISIBLE参数中设置dwStyle标记。

答案 3 :(得分:2)

我认为如果不需要,更好的解决方案是不创建窗口。 看一下main函数,您将看到创建窗口的代码。 只有在您想要启动窗口时才调用它。

答案 4 :(得分:1)

创建窗口,省略WS_VISIBLE标志,不要调用ShowWindow。

调用showWindow()时,添加SW_HIDE参数。

ShowWindow(hWnd, SW_HIDE);