我正在用C ++编写一个作为系统托盘图标运行的应用程序。当应用程序最初启动时,主对话框会加载并获得焦点,这不是我打算拥有的行为。有没有办法加载系统托盘图标而不加载主对话框?
答案 0 :(得分:2)
我要说你必须将系统托盘代码和窗口代码分开,并且只在调用系统托盘时显示窗口。 但是你总是可以打电话
ShowWindow(SH_HIDE);
答案 1 :(得分:1)
如果使用标准mfc项目向导,则显示该对话框的代码位于应用程序的InitInstance方法中。
只需注释掉dlg.DoModal()
和m_pMainWnd = &dlg;
部分,您就可以了。
请注意,您可能必须编写自己的消息循环代码,否则您的应用程序将在这些更改后退出。
答案 2 :(得分:0)
我这样做的常用方法是创建一个不可见的基于对话框的应用程序,并仅在用户与托盘图标交互时显示窗口。有关如何执行此操作的示例代码,请参阅here。