Sean's Note: 把視窗移到最前面

2012年6月5日 星期二

把視窗移到最前面

試過了 BringToTop() 和 SetWindowsPos() 都沒什麼用。

SwitchToThisWindow() 有用,但不是想要的效果。

SetForegroundWindow() 有用,但不是每次都成功,

失敗時程式就會在工作列上閃阿閃的 (註 1)。

最後參考了這篇的第二段 code ,終於實現了需要的功能:
http://www.codeproject.com/Tips/76427/How-to-bring-window-to-top-with-SetForegroundWindo

最主要是 AttachThreadInput() 讓 SetForegroundWindow() 幾乎都能成功。


註 1: 利用 SPI_SETFOREGROUNDFLASHCOUNT 可以控制要閃的次數。
SystemParametersInfo( SPI_SETFOREGROUNDFLASHCOUNT, 0, 5, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);

沒有留言:

張貼留言