• WinForm 窗体永远置顶,即使Win+D也不影响。


    前段时间在一个闲聊群看一群大佬们讨论窗体如何置顶,像桌面日历那样。找到一篇CPP的文章(https://www.cnblogs.com/findumars/p/5786057.html)。

    今天有空,翻译了一下C#版本,成功了,所以写下来,以后说不定能用到。

    主要方法就一个 CheckParent

    其次要注意的是,要设置窗体在任务栏隐藏。

    注意好这两点后,就可以开干了。

    static IntPtr s_hWndOldParent = IntPtr.Zero;
    void CheckParent(IntPtr hWnd)
    {
        IntPtr hWndProgram = IntPtr.Zero;
        IntPtr hWndShellDLL = IntPtr.Zero;
    
        hWndProgram = FindWindow("Progman", "Program Manager");
        if (hWndProgram != IntPtr.Zero)
        {
            hWndShellDLL = FindWindowEx(hWndProgram, IntPtr.Zero, "SHELLDLL_DefView", null);
        }
        if (hWndShellDLL != IntPtr.Zero && s_hWndOldParent != hWndShellDLL)
        {
            SetWindowLong(hWnd, GWL_HWNDPARENT, hWndShellDLL);
            s_hWndOldParent = hWndShellDLL;
        }
    }
  • 相关阅读:
    订单号设计
    小公司的技术架构原则
    Redis配置详解
    实现图片懒加载
    Js的GC机制
    防抖与节流
    Js中的堆栈
    浏览器窗口间通信
    块级格式化上下文
    实现瀑布流布局
  • 原文地址:https://www.cnblogs.com/xt_hjl/p/14102652.html
Copyright © 2020-2023  润新知