我做了类似于win7电池表的弹出窗口。它的行为就像内置于一个,除非它通过位于NotifyAreaOverflowWindow
上的通知图标显示并通知过度区域该窗口在一段时间后自动隐藏,而它应该仅在我的弹出窗口关闭时隐藏。我可以用spyxx
发现的唯一区别是,在一段时间后溢出窗口只会发送一条WM_SHOWWINDOW wp:0 lp:0
消息。
如何在我的弹出窗口处于活动状态时阻止溢出窗口自动隐藏?
答案 0 :(得分:1)
你应该致电
NotifyWinEvent(EVENT_SYSTEM_MENUPOPUPSTART, Handle, OBJID_CLIENT, 0);
在显示窗口并致电之前
NotifyWinEvent(EVENT_SYSTEM_MENUPOPUPEND, Handle, OBJID_CLIENT, 0);
隐藏它之后。
答案 1 :(得分:0)
弹出窗口与其他任何窗口都没有区别。
如果我理解你的问题,那就是窗户随着时间的推移而消失,那么解决方案就很简单了。不要使用任何NotifyAreaOverflowWindow
。相反,创建自己的窗口,具有适当的属性(没有控制框,没有最大/最小按钮,没有标题文本等...)。因为您可能无法控制您正在使用的类/对象的持续时间。它可能是针对单一通知而设计的,而不是适度有用的东西;)。
另外,你可以根据需要做一些奇特的事情而不再遇到问题。
以下教程详细介绍了如何完美定位它: http://blog.quppa.net/2010/12/09/windows-7-style-notification-area-applications-in-wpf-part-3-taskbar-position/