我可以将窗口位置设置为最顶层,并且使用SetWindowPos
将其设置为最顶层。但我无法弄清楚如何检查窗口是否是最顶层的。是否有任何方法可以检查窗口是否位于最顶层或没有pinvoke?
答案 0 :(得分:2)
您可以使用GetWindowLong()
功能检查Extended Window Styles。
未经测试,但我相信它应该有效:
[DllImport("user32.dll", SetLastError=true)]
static extern int GetWindowLong(IntPtr hWnd, int nIndex);
const int GWL_EXSTYLE = -20;
const int WS_EX_TOPMOST = 0x0008;
public static bool IsWindowTopMost(IntPtr hWnd)
{
int exStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
return (exStyle & WS_EX_TOPMOST) == WS_EX_TOPMOST;
}
答案 1 :(得分:0)
根据您使用的UI技术,您可以选择以下两项:
Form.TopMost
Window.TopMost
您可以使用这些属性来检查某个窗口是否位于最顶层,您也可以使用这些属性来设置最顶层的窗口。我更喜欢这些支持任何win32方法。