手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

用c#做screensaver_c#应用

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

/* Program : A Simple Screen Saver
* File Name : ScreenSaver.cs
* Author : Tran Khanh Hien
* Date : 06/20/2001
* email : hientk@yahoo.com
*/

namespace Screen_Saver
{
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.WinForms;
using System.Data;


/// <summary>
/// Summary description for Form1.
/// </summary>
public class ScreenSaver : System.WinForms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components;
private System.WinForms.Timer timerSaver;
private System.WinForms.Label lblMarquee;

private int iSpeed = 2;
private string strMarqueeText="C Sharp Screen Saver";

private System.Drawing.Font fontMarquee = new System.Drawing.Font ("Arial", 20,
System.Drawing.FontStyle.Bold);
private Color colorMarquee = System.Drawing.Color.FromARGB(255,255,255);

private int iDistance;
private int ixStart= 0;
private int iyStart= 0;

public ScreenSaver()
{
InitializeComponent();

lblMarquee.Font=fontMarquee;
lblMarquee.ForeColor=colorMarquee;
System.Drawing.Cursor.Hide();
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
public override void Dispose()
{
base.Dispose();
components.Dispose();
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager (typeof
(ScreenSaver));
this.components = new System.ComponentModel.Container ();
this.timerSaver = new System.WinForms.Timer (this.components);
this.lblMarquee = new System.WinForms.Label ();
//@this.TrayHeight = 90;
//@this.TrayLargeIcon = false;
//@this.TrayAutoArrange = true;
//@timerSaver.SetLocation (new System.Drawing.Point (7, 7));
timerSaver.Interval = 1;
timerSaver.Enabled = true;
timerSaver.Tick = new System.EventHandler (this.timerSaver_Tick);
lblMarquee.Location = new System.Drawing.Point (88, 0);
lblMarquee.Size = new System.Drawing.Size (128, 48);
lblMarquee.ForeColor = System.Drawing.Color.White;
lblMarquee.TabIndex = 0;
lblMarquee.Visible = false;
this.MaximizeBox = false;
this.StartPosition = System.WinForms.FormStartPosition.Manual;
this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
this.BorderStyle = System.WinForms.FormBorderStyle.None;
this.KeyPreview = true;
this.WindowState = System.WinForms.FormWindowState.Maximized;
this.ShowInTaskbar = false;
this.Icon = (System.Drawing.Icon) resources.GetObject ("$this.Icon");
this.ControlBox = false;
this.MinimizeBox = false;
this.BackColor = System.Drawing.Color.Black;
this.ClientSize = new System.Drawing.Size (300, 300);
this.KeyDown = new System.WinForms.KeyEventHandler (this.Form1_KeyDown);
this.MouseDown = new System.WinForms.MouseEventHandler (this.Form1_MouseDown);
this.MouseMove = new System.WinForms.MouseEventHandler (this.Form1_MouseMove);
this.Controls.Add (this.lblMarquee);
}

protected void timerSaver_Tick (object sender, System.EventArgs e)
{
lblMarquee.Text=strMarqueeText;
lblMarquee.Height=lblMarquee.Font.Height;
lblMarquee.Width=lblMarquee.Text.Length*(int)lblMarquee.Font.Size;

PlayScreenSaver();
}

private void PlayScreenSaver()
{
//Get the working area of the the computer screen.
System.Drawing.Rectangle ssWorkArea = System.WinForms.Screen.GetWorkingArea(this);

lblMarquee.Location=new System.Drawing.Point(ssWorkArea.Width - iDistance,
lblMarquee.Location.Y);

//Make the label visible if it is not currently visible.
lblMarquee.Visible=true;

// Increment the label distance based on the speed set by the user.
iDistance = iSpeed;
// If the label is offscreen, then we want to reposition it to the right.
if (lblMarquee.Location.X <= -(lblMarquee.Width))
{
//Reset the distance to 0.
iDistance = 0;

//If the label is at the top, move it to the middle.
if (lblMarquee.Location.Y == 0)
lblMarquee.Location=new System.Drawing.Point(lblMarquee.Location.X,
(ssWorkArea.Height / 2));

// If label is in the middle of the screen move it to the bottom.
else if(lblMarquee.Location.Y== ssWorkArea.Height /2)
lblMarquee.Location=new System.Drawing.Point(lblMarquee.Location.X,ssWorkArea.Height -
lblMarquee.Height);
//Move the label back to the top.
else
lblMarquee.Location=new System.Drawing.Point(lblMarquee.Location.X,0);
}
}

protected void Form1_MouseDown (object sender, System.WinForms.MouseEventArgs e)
{
StopScreenSaver();
}

protected void Form1_MouseMove (object sender, System.WinForms.MouseEventArgs e)
{
// Determine if the mouse cursor position has been stored previously.

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!