c# - 为什么我的 winform 窗口在其他窗口前面,即使使用 HWND BOTTOM?

我的代码是

private static readonly IntPtr HWND_BOTTOM = new IntPtr(1);
    private const UInt32 SWP_NOSIZE = 0x0001;
    private const UInt32 SWP_NOMOVE = 0x0002;
    private const UInt32 BOTTOM_FLAGS = SWP_NOSIZE;

...

private void Form1_Load(object sender, EventArgs e)
    {
        SetWindowPos(this.Handle, HWND_BOTTOM, 0, 0, 0, 0, BOTTOM_FLAGS);
    }

它应该在所有其他窗口的后面,如 https://docs.microsoft.com/en-gb/windows/win32/api/winuser/nf-winuser-setwindowpos?redirectedfrom=MSDN 所述。

但是,它会出现在所有其他窗口的前面,并且需要单击其他窗口才能进入前面。

回答1

解决方案是添加更多标志并将我的一些代码移动到 WndProc,如评论中所示。

相似文章

python - XML 解析器错误地缺少标签

我正在解析来自SECEDGAR系统的文档。当我使用lxml解析器时,它似乎可以正确解析(尽管它是小写的XML标记)。当我使用xml解析器时,它似乎错误地理解了XML。我做错了什么还是这是一个错误?以下...

c++ - C ++禁用鼠标指针调整大小从易于访问

不久前,我为使用各种自定义光标(.cur)的客户端开发了一个应用程序。他们最近联系了我,因为他们的一个孩子使用“轻松访问”来大幅增加计算机的鼠标指针大小(由于他们的视力)。我的客户希望我可以调整我为他...