2

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

4

3 回答 3

2

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

ShowWindow(SH_HIDE);

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

于 2009-07-28T05:54:22.133 回答
1

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

只需注释掉dlg.DoModal()m_pMainWnd = &dlg;部分,你会没事的。

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

于 2009-07-28T07:14:52.550 回答
0

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

于 2009-07-30T11:57:38.683 回答