ウィンドウのタイトルを点滅させたい場合は
Win32APIの FlashWindowEx APIをコールします。
サンプルコードの前半は同APIを利用するための準備で
ボタンを押すと点滅させています。
点滅後はタイトルが強調表示されたままになります。
何かの処理が完了したことを知らせる場合などに利用します。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; // DllImportのために必要 namespace WindowsFormsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll")] static extern Int32 FlashWindowEx(ref FLASHWINFO pwfi); [StructLayout(LayoutKind.Sequential)] public struct FLASHWINFO { public UInt32 cbSize; // FLASHWINFO構造体のサイズ public IntPtr hwnd; // 点滅対象のウィンドウ・ハンドル public UInt32 dwFlags; // 以下の「FLASHW_XXX」のいずれか public UInt32 uCount; // 点滅する回数 public UInt32 dwTimeout; // 点滅する間隔(ミリ秒単位) } public const UInt32 FLASHW_STOP = 0; // 点滅を止める public const UInt32 FLASHW_CAPTION = 1; // タイトルバーを点滅させる public const UInt32 FLASHW_TRAY = 2; // タスクバー・ボタンを点滅させる public const UInt32 FLASHW_ALL = 3; // タスクバー・ボタンとタイトルバーを点滅させる public const UInt32 FLASHW_TIMER = 4; // FLASHW_STOPが指定されるまでずっと点滅させる public const UInt32 FLASHW_TIMERNOFG = 12; // ウィンドウが最前面に来るまでずっと点滅させる public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { FLASHWINFO fInfo = new FLASHWINFO(); fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo)); fInfo.hwnd = this.Handle; fInfo.dwFlags = FLASHW_ALL; fInfo.uCount = 5; // 点滅回数 fInfo.dwTimeout = 0; FlashWindowEx(ref fInfo); } } }
コメントを残す