【发布时间】:2014-01-21 10:16:56
【问题描述】:
我有一个很少在桌面左下角最小化的 vb.net 程序。通常,如果我通过它最小化它会最小化到任务栏。但只有有时它会最小化,如下所示(您可以在桌面左下方看到 Shortcut_nvt 程序最小化)。有人知道这种行为吗?为什么会这样?
【问题讨论】:
我有一个很少在桌面左下角最小化的 vb.net 程序。通常,如果我通过它最小化它会最小化到任务栏。但只有有时它会最小化,如下所示(您可以在桌面左下方看到 Shortcut_nvt 程序最小化)。有人知道这种行为吗?为什么会这样?
【问题讨论】:
[这不是一个真正的答案,但评论太长了。]
这是正常的 Windows 行为前任务栏。随着功能被添加到 Windows 以取代旧的程序管理器,它们保留了向后兼容性,因此旧的 Windows 消息仍然有效。然而,任务栏拦截消息并添加一些自己的消息以提供新的行为。您所说的“最小化到任务栏”实际上隐藏了应用程序窗口并用任务栏维护的按钮替换它。旧的 Windows 最小化行为通常被抑制,并且不知何故你已经唤醒了它。
我的猜测是你在你的程序中做了一些事情来中断 Windows 消息的流动,从而导致与任务栏的链接出现故障。您应该寻找诸如预览处理程序或钩子或消息泵代码之类的东西作为罪魁祸首。您可以通过使用 Spy++ (Visual Studio) 和查看消息来诊断此行为,但这并不容易。
很抱歉没有提供更多帮助,但是 Windows 的这一部分非常复杂且难以调试。如果您获得更多有用的信息,我很想知道。
【讨论】: