備忘録:c#でスプラッシュウインドウを実現する

単純に備忘録。フェードインしてフェードアウトするやつ。

ソース貼っとく。

/*
 * SharpDevelopによって生成
 * ユーザ: goro tsukiyama
 * 日付: 2013/08/23
 * 時刻: 00:03
 * 
 * このテンプレートを変更する場合「ツール→オプション→コーディング→標準ヘッダの編集」
 */
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
//using System.Threading;

namespace Tkymgr
{
	/// <summary>
	/// Description of VersionForm.
	/// </summary>
	public partial class SplashWindow : Form
	{
        [DllImport("user32")]
        static extern bool AnimateWindow(IntPtr hwnd, int time, uint flags);

        [Flags]
        public enum AnimateWindowFlags : uint
	    {
	        AW_HOR_POSITIVE = 0x00000001,
	        AW_HOR_NEGATIVE = 0x00000002,
	        AW_VER_POSITIVE = 0x00000004,
	        AW_VER_NEGATIVE = 0x00000008,
	        AW_CENTER       = 0x00000010,
	        AW_HIDE         = 0x00010000,
	        AW_ACTIVATE     = 0x00020000,
	        AW_SLIDE        = 0x00040000,
	        AW_BLEND        = 0x00080000
	    }

        public SplashWindow()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();

			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}

		void SplashWindowFormClosing(object sender, FormClosingEventArgs e)
		{
			// Fade Out
			AnimateWindow(
				this.Handle,
				1000,
				(uint)(AnimateWindowFlags.AW_BLEND | AnimateWindowFlags.AW_HIDE)
			);
		}

		void SplashWindowLoad(object sender, EventArgs e)
		{
			// Fade In
			AnimateWindow(
				this.Handle,
				1000,
				(uint)(AnimateWindowFlags.AW_BLEND | AnimateWindowFlags.AW_ACTIVATE)
			);
		}

		void SplashWindowClick(object sender, EventArgs e)
		{
			this.Close();
		}
	}
}

 

「備忘録:c#でスプラッシュウインドウを実現する」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です