欢迎光临

木子屋

标题: .NET在屏幕上输出文字

作者: dnawo

日期: 2008-12-02 10:59 AM

分类: Win编程

内容: 方法一：调用API函数获取屏幕的设备驱动器句柄，然后用Graphics在屏幕上输出文字。
复制内容到剪贴板 程序代码using System.Runtime.InteropServices;
namespace Test
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("user32.dll")]
private static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc);
private void button1_Click(object sender, EventArgs e)
{
IntPtr hwnd = IntPtr.Zero;
IntPtr hdc = GetDC(hwnd);
using (Graphics graphics = Graphics.FromHdc(hdc))
{
graphics.DrawString("木子屋:http://www.mzwu.com/", new Font("宋体", 15), new SolidBrush(Color.Red), 3, 3);
}
ReleaseDC(hwnd, hdc);//释放句柄
}
}
}
缺点：输出的文字不好用程序擦除，桌面刷新文字就会丢失！
方法二：使用透明的窗体
在Form1中输入如下代码：
复制内容到剪贴板 程序代码Form curForm;
private void Form1_Load(object sender, EventArgs e)
{
//新建窗体并设置属性
curForm = new Form();
curForm.TopMost = true;//最顶层
curForm.FormBorderStyle = FormBorderStyle.None;//无标题栏,边框
curForm.TransparencyKey = this.BackColor;//底色透明
curForm.Width = 600;
curForm.Height = 30;
curForm.Left = (Screen.GetWorkingArea(curForm).Width - curForm.Width) / 2;
curForm.Top = (Screen.GetWorkingArea(curForm).Height - curForm.Height);
//添加Label
Label label1 = new Label();
label1.AutoSize = true;
label1.Text = "木子屋:http://www.mzwu.com/";
curForm.Controls.Add(label1);
//显示新窗体
curForm.Show();
}
相比方法一，这种方法修改文字非常容易，并且文字不会丢失！

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.633 ms

返回

标题: .NET在屏幕上输出文字

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.633 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.664 ms

返回