閃動一個窗口的標題欄意味著改變它的標題欄的外觀,例如它從活動變為不活動,或是從不活動變為活動等等。只要你能在Delphi 或者 C++ Builder 中得到窗口的句柄,你就可以使用Windows 應用程序編程接口(API)函數來使該窗口的標題欄進行閃動。函數FlashWindows可以被用使一個特定的窗口閃動一次。
函數原形:
function FlashWindow(const hwnd:Integer;const bInvert:LongBool):LongBool;
該函數需要2個參數,第一個參數是要閃動標題欄的窗口的句柄,第二個參數用於指定是設置窗口的閃動狀態,還是恢復其原始狀態。如果該bInvert參數為True,則表明窗口的標題欄被閃動,如果該參數為False,則表明窗口的標題欄被恢復為原始狀態。
該函數所返回的值用於指定調用該函數前窗口的狀態,如果該返回值True,則表明窗口在調用該函數之前是活動的,否則,如果返回值為False,則表明調用函數前窗口是非活動的。
當使用該FlashWindow函數時,一個較好的方法是將標題欄閃動的頻率設置為同脫字符(也即閃動的光標)相同,脫字符的閃動頻率可以通過調用函數GetCaretBlinkTime來獲得。要使用該函數,需要將如下的聲明語句包含在你的窗體的通用聲明部分中:
function GetCaretBlinkTime:Integer;
該函數返回用毫秒值表示的時間。例程: 建立新的Project,並新建一From(包括New
Project建立的Form,共兩個),在Form1中加入一Button和Timer,按下面的方法建立程序.
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
Form1.BringToFront;
Timer1.Interval:=GetCaretBlinkTime;
Timer1.Enabled:=Not Timer1.Enabled;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
FlashWindow(Form2.Handle,TRUE);
end;