C# windows应用程序中的覆盖

C# windows应用程序中的覆盖,c#,C#,关于为windows应用程序创建覆盖,什么是一个好的站点?欢迎阅读书籍或其他资源,因为我正在努力理解基本概念。 具体地说,如果我有一个应用程序可以播放视频,我该如何添加覆盖层,比如人名或建筑物的gps坐标 谢谢您的时间。您必须先覆盖WinForm的CreateParams: protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams;

关于为windows应用程序创建覆盖,什么是一个好的站点?欢迎阅读书籍或其他资源,因为我正在努力理解基本概念。 具体地说,如果我有一个应用程序可以播放视频,我该如何添加覆盖层,比如人名或建筑物的gps坐标


谢谢您的时间。

您必须先覆盖WinForm的CreateParams:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= Win32.WS_EX_LAYERED; //Make this form a layered window
        return cp;
    }
}
然后,无论何时需要刷新窗口,都需要调用
UpdateLayeredWindow
API

[DllImport("user32.dll", ExactSpelling = true, SetLastError = true)]
public static extern Bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref Point pptDst, ref Size psize, IntPtr hdcSrc, ref Point pprSrc, int crKey, ref BLENDFUNCTION pblend, int dwFlags);

查看此内容了解更多信息。

谢谢。这似乎是我想要的。