FlashWindow和FlashWindowEx


為了通知用戶某種錯誤發生了,很多應用程序一般使用MessageBeep函數發出蜂鳴聲,或者調用函數FlashWindow或FlashWindowEx來使特定的窗口閃爍。應用程序也能使用這些函數來引起用戶對某個事件關注,然后顯示一個消息提示對話框或一條詳細錯誤信息。

1)FlashWindow函數用來使某個指定的窗口產生一次閃爍的效果,它同樣不會改變窗口的活動狀態(如果要使窗口閃爍指定的次數,則需要使用下面介紹的FlashWindowEx函數):

BOOL WINAPI FlashWindow(

__in HWND hWnd, //要閃爍的窗口的句柄,該窗口可以是打開的或最小化的

__in BOOL bInvert //為TRUE,表示窗口從一個狀態閃爍到另一個狀態;

//為FALSE,表示窗口恢復到初始狀態(可能是激活的也可能是非激活的)

);

返回值表示調用FlashWindow函數之前窗口的活動狀態,若指定窗口在調用函數之前是激活的,那么返回非零值,否則返回零值。

FlashWindow函數只能閃爍一次,如果要使用該函數閃爍多次時,應用程序需要增加一個系統定時器。

2)FlashWindowEx函數用來使某個特定的窗口產生閃爍的效果,但它並不改變該窗口的活動狀態:

BOOL WINAPI FlashWindowEx(

__in PFLASHWINFO pfwi //指向FLASHWINFO結構的指針

);

返回值表示調用FlashWindowEx函數之前窗口的活動狀態,若指定窗口在調用函數之前是激活的,那么返回非零值,否則返回零值。

典型情況下,我們使一個窗口閃爍是為了告訴用戶這個窗口需要關注這個窗口,但該窗口暫時沒有獲得鍵盤焦點。當一個窗口閃爍時,它表現出來的狀態就像從激活狀態到非激活狀態之間往返循環。

FLASHWINFO結構包含了特定窗口的閃爍狀態,以及系統要閃爍窗口的次數:

typedef struct {

UINT cbSize; //該結構的字節大小

HWND hwnd; //要閃爍的窗口的句柄,該窗口可以是打開的或最小化的

DWORD dwFlags; //閃爍的狀態,可以是下面取值之一或組合:

//FLASHW_ALL---同時閃爍窗口標題和窗口的任務欄按鈕,

// 相當於FALSHW_CAPTION | FLASHW_TRAY

//FLASHW_CAPTION---閃爍窗口的標題

//FLASHW_STOP---停止閃爍,系統將重置窗口到其初始狀態

//FLASHW_TIMER---不停地閃爍,直到FLASHW_STOP標志被設置

//FLASHW_TIMERNOFG---不停地閃爍,直到窗口前端顯示

//FLASHW_TRAY---閃爍窗口的任務欄按鈕

UINT uCount; //閃爍窗口的次數

DWORD dwTimeout; //窗口閃爍的頻度,毫秒為單位;若該值為0,則為默認圖標的閃爍頻度

} FLASHWINFO, *PFLASHWINFO;

3)附:以下函數都可用於錯誤處理的:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM