是否有一种托管方式可以在我的应用程序外部的窗口上设置always on top标志/设置,还是需要P / Invoke本机功能?
如果P / Invoke是唯一的方法是什么是所需的函数调用以及从哪个dll开始?
答案 0 :(得分:8)
自从提出问题以来,我一直在研究这个问题,并且看到了如何通过在'user32.dll'中调用SetWindowPos来实现这一目标的好例子。如果有效,我会回来接受这个答案。
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
const UInt32 SWP_NOSIZE = 0x0001;
const UInt32 SWP_NOMOVE = 0x0002;
const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;
public static void MakeTopMost (IntPtr hWnd)
{
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
}
答案 1 :(得分:-1)
简单答案:
TopMost = true;