我编写了一个 Visual C++ 控制台应用程序(即 subsystem:console),它可以将有用的诊断消息打印到控制台。
但是,我希望大部分时间都将应用程序最小化,而不是最小化到任务栏,而是在系统托盘上显示为一个漂亮的图标。我还想在单击系统托盘图标时恢复控制台。
我应该如何更改我的程序来执行此操作?
最佳答案
这将是一个丑陋的 hack。
首先,您必须检索控制台应用程序的 hWnd
/hInstance
。目前,我只能想出一个办法:
- 使用
CoCreateGuid()
创建 Guid - 将其转换为字符串
- 使用
SetConsoleTitle()
将控制台窗口的标题设置为此 guid
- 使用
FindWindow()
找到带有 Guid 的窗口的 - 从现在开始,您可以按照通常的方式进行操作。 See http://www.gidforums.com/t-9218.html for more info.
- 不要忘记在完成后将控制台窗口重命名为原始标题。
hWnd
如您所见,尽管这是可能的,但这是一个可怕而痛苦的解决方案。请不要这样做。请不要将控制台应用程序最小化到系统托盘。 这不是您应该能够在 Windows API 中执行的操作。
关于c++ - 如何在 Windows 中编写可最小化到系统托盘的控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/268260/