zoukankan      html  css  js  c++  java
  • C#全屏随机位置显示图片的小程序

    想法:将屏幕截图作为程序背景图,在之上弹出提示窗口,选择确定后进行定时图片随机位置显示。(支持ESC键退出)

    • 需要添加的控件:Timer

    • 需要修改的Form1属性为下图红色区域:

     

    • 资源文件的添加:添加->新建项->资源文件

    • ESC键退出程序:

    在Form1.Designer.cs中增加

    this.KeyDown += Form1_KeyDown;

    • 代码如下:
       1         Rectangle bounds = Screen.GetBounds(Screen.GetBounds(Point.Empty));
       2 
       3         public Form1()
       4         {
       5             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
       6             this.BackgroundImage = GetNoCursor();
       7             InitializeComponent();
       8         }
       9 
      10         private void Form1_Load(object sender, EventArgs e)
      11         {
      12             timer1.Interval = 500;
      13             if (MessageBox.Show("消息", "标题", MessageBoxButtons.YesNo) == DialogResult.Yes)
      14             {
      15                 timer1.Enabled = true;
      16             }
      17             else
      18             {
      19                 this.Close();
      20             }
      21         }
      22 
      23         private void Form1_KeyDown(object sender, KeyEventArgs e)
      24         {
      25             if (e.KeyData == Keys.Escape)
      26             {
      27                 timer1.Enabled = false;
      28                 MessageBox.Show("消息", "标题", MessageBoxButtons.OK);
      29                 this.Close();
      30             }
      31         }
      32 
      33         private Bitmap GetNoCursor()
      34         {
      35             Bitmap Source = new Bitmap(bounds.Width, bounds.Height);    //根据屏幕大小创建Bitmap对象
      36             Graphics g = Graphics.FromImage(Source);
      37             g.CopyFromScreen(0, 0, 0, 0, Source.Size);  //获取没有鼠标的屏幕截图
      38             g.Dispose();    //释放资源
      39             return Source;
      40         }
      41 
      42         private void timer1_Tick(object sender, EventArgs e)
      43         {
      44             Image img = Resource1.Image1;//获取用于显示的资源文件
      45             if (img != null)
      46             {
      47                 Graphics g = this.CreateGraphics();
      48                 Random rd = new Random();
      49                 int picXPoint = rd.Next(0, bounds.Right - img.Width);
      50                 int picYPoint = rd.Next(0, bounds.Height - img.Height);
      51                 Point ulCorner = new Point(picXPoint, picYPoint);
      52                 g.DrawImageUnscaled(img, ulCorner);
      53             }
      54             else
      55             {
      56                 timer1.Enabled = false;
      57                 MessageBox.Show("没有图片,感谢使用");
      58                 this.Close();
      59             }
      60         }
  • 相关阅读:
    电源锁
    Android的三种网络联接方式
    用tcpdump在手机上抓包
    图片出现波纹的问题
    Android 3.1以后 广播接收器的新机制
    OpenGL坐标
    用Messager进行IPC
    PHP 介绍
    View坐标,MotionEvent坐标, 二者的转换,可视区域
    OpenGL ES
  • 原文地址:https://www.cnblogs.com/Idus/p/5886817.html
Copyright © 2011-2022 走看看