如果单击其所有者窗口,标准 Windows 对话框将闪烁。效果类似于激活和停用窗口。
但是,在我的对话框上实现自定义窗口边框时,我不知道何时应该闪烁窗口。Windows 不会为我闪烁对话框。
这是我尝试过的:
我查看了发送给所有者和对话框的所有消息,但找不到任何仅用于告诉窗口闪烁的消息。
我将 Spy++ 连接到默认的 Windows 对话框,但也找不到“flash”消息。
在 WinUser.h 中我找不到“flash”消息,所以我假设它是一个或多个消息与指定的 lParam 和 wParam 的某种组合。
有没有人有这方面的经验,或者可以指出一些解释这一点的页面?任何想法都值得赞赏,因为我已经研究这个问题几个月了。
编辑
作为对评论的回应,这里是我目前使用的代码:
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == 0x0020)
{
if ((short)((long)lParam & 0xffff) == (-2))
{
short hiword = (short)((((long)lParam) >> 16) & 0xffff);
if (hiword == 0x0201 || hiword == 0x0204)
Flash(); // My function which simulates a window flash
}
}
return IntPtr.Zero;
}