繁体   English   中英

如何重新着色 Windows 表单的标题栏 C#

[英]How to recolor Windows Form's title bar C#

我只想重新着色我的应用程序的 windows 表单的标题栏,我在网上找到了这个代码

  [DllImport("user32.dll")]
    static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);

    [DllImport("User32.dll")]
    private static extern IntPtr GetWindowDC(IntPtr hWnd);

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
     const int WM_NCPAINT = 0x85;
     base.WndProc(ref m);

        if (m.Msg == WM_NCPAINT)
        {

            IntPtr hdc = GetWindowDC(m.HWnd);
            if ((int)hdc != 0)
            {
                Graphics g = Graphics.FromHdc(hdc);
                g.FillRectangle(Brushes.Green, 10, 0, 4800, 23);
                g.Flush();
                ReleaseDC(m.HWnd, hdc);
            }

        }
    }

但我不知道如何触发它,你能帮我吗?

我所做的是将 FormBorderStyle 属性设置为 None,然后我使用 flowLayoutPanel 作为我的标题栏,设置鼠标事件并添加最小化/关闭按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM