【发布时间】:2016-01-26 13:24:58
【问题描述】:
通常,当您打开模态对话框并尝试单击其父窗口时,模态对话框的标题栏会闪烁。在 WPF 中创建自定义、无边框、无边框的窗口时,您将失去所有功能,必须自己重建它。我看起来高高在低,我一生都无法弄清楚如何让我的模态窗口闪烁。虽然它仍然发出哔哔声......
我想我将不得不在 WndProc 中观察一些我必须处理的事件,但我不知道是哪个事件或如何去做。我试过观察窗口改变和窗口改变事件以及 WM_ACTIVATE 事件无济于事。我确定我只是缺少一些简单的东西,但我将不胜感激。谢谢!
【问题讨论】:
-
这是 WM_NCACTIVATE 消息。 Spy++ 实用程序可以告诉你这些事情。
-
我使用了 spy++,但据我所知,WM_NCACTIVATE 无论是失去焦点的模态窗口还是非模态窗口都会发送相同的确切消息。这似乎不是很有帮助。它也只是告诉我窗口正在被激活,我不知道如何判断,我需要 FLASH 标题栏,而不仅仅是绘制一个活动的标题栏。你能说得更具体点吗?
-
重点是多次发送消息。从而使其闪烁。
-
哦哦哦。我明白了......显然仅仅因为发送了停用消息并不意味着窗口的 IsActive 属性实际上发生了变化。
-
不是停用消息,而是 WM_ACTIVATE。 “NC”消息是“窗口的框架应该是什么样子”消息。 "NC" == 非客户端。
标签: c# wpf window custom-controls wndproc