在启动时隐藏系统托盘应用程序的对话框

时间:2009-07-27 22:36:39

标签: c++ mfc system-tray

我正在用C ++编写一个作为系统托盘图标运行的应用程序。当应用程序最初启动时,主对话框会加载并获得焦点,这不是我打算拥有的行为。有没有办法加载系统托盘图标而不加载主对话框?

3 个答案:

答案 0 :(得分:2)

我要说你必须将系统托盘代码和窗口代码分开,并且只在调用系统托盘时显示窗口。 但是你总是可以打电话

ShowWindow(SH_HIDE);

检查http://www.codeguru.com/forum/showthread.php?t=231032

答案 1 :(得分:1)

如果使用标准mfc项目向导,则显示该对话框的代码位于应用程序的InitInstance方法中。

只需注释掉dlg.DoModal()m_pMainWnd = &dlg;部分,您就可以了。

请注意,您可能必须编写自己的消息循环代码,否则您的应用程序将在这些更改后退出。

答案 2 :(得分:0)

我这样做的常用方法是创建一个不可见的基于对话框的应用程序,并仅在用户与托盘图标交互时显示窗口。有关如何执行此操作的示例代码,请参阅here