在.Net(或通过pinvoke)中是否可以确定窗口窗体是否被遮挡(即其他窗口已移到其上方,因此无法看到)?我正在做的是检查表单是否最小化,如果是,则在任务栏上闪烁窗口。但是问题是如果它没有被最小化,而只是移动到后台,我还想通过在任务栏上闪烁窗口来通知用户。我不想自动将窗口移动到前台(即使没有激活)。我希望他们单击它以最大化和/或显示表单。想法?
这是一些代码:
// 看看我们是否已经和这个人进行了对话
var frm = theApp.GetConversationByUID(fromuid);
如果(frm == null)
{
frm = theApp.NewConversation(fromuid, fromname);
}
别的
{
bool insideView = frm.WindowState != FormWindowState.Minimized;
如果(视图内)
{
// 判断窗口是否刚刚被遮挡
//去做
}
// 如果会话窗口不在视图中,则将其闪烁
如果 (!withinView)
{
FlashWindow.Flash(frm);
}
}