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