在屏幕上绘制一个字符串C#

时间:2010-11-02 10:07:45

标签: c# winforms gdi+

我想在屏幕上(在特定位置)简单地绘制一个字符串(如果可能的话,以特定的字体和大小)。我在C#windows窗体应用程序中。不幸的是,我无法在网上找到任何关于如何做到这一点的提示。

请帮忙!

基督教

3 个答案:

答案 0 :(得分:3)

要在窗口外绘制一个字符串,你必须创建一个新窗口,将它的掩码设置为某种颜色(比如洋红色),然后在其上绘制文本 - 你可以在这里使用简单的标签。

将窗口边框样式设置为“无”,然后就可以了。

换句话说,如果没有附加窗口,就无法显示“自由文本”。

对于遮罩颜色,请使用“透明度颜色”或类似属性(我稍后会查看它 - 手头没有VS)

答案 1 :(得分:2)

不是真的建议做你要求的,参见例如http://blogs.msdn.com/b/greg_schechter/archive/2006/05/02/588934.aspx

如果你真的想做这样的事情;这是一个令人毛骨悚然的方式:

    [DllImport("User32.dll")]
    public static extern IntPtr GetDC(IntPtr hwnd);

    [DllImport("User32.dll")]
    public static extern void ReleaseDC(IntPtr dc);

    protected override void OnPaint(PaintEventArgs e)
    {
        IntPtr desktopDC = GetDC(IntPtr.Zero);

        Graphics g = Graphics.FromHdc(desktopDC);

        g.DrawString("Test", new Font(FontFamily.GenericSerif, 12), Brushes.Blue, 300, 300);
        g.Dispose();

        ReleaseDC(desktopDC);
    }

请注意,我不建议任何人这样做,因为我不认为应用程序应该做这样的事情。如果你想画一些东西,你应该在你自己的表格/控件上做。

答案 2 :(得分:0)

检查this

或者您正在寻找DrawString方法

希望这会有所帮助