misc.log

日常茶飯事とお仕事と

ウィンドウの点滅を制御する

背後に回ってしまったプログラムのウィンドウ(タスクバーのボタンと、ウィンドウのタイトルバー)が点滅するというのは、Windowsが持っている機能の1つだ。これについて、顧客から「点滅を何とかできないか」という問い合わせが。今は別のもっと重たい問題について調査しようとしているところなのだから、ちょっとは優先順位をつけて質問をして欲しいと思うのだが、ま、仕方ない(言っても判ってもらえない)のは判っていることなので、調査。
問題は、メインプログラムが利用している、別プロセスのプログラム(ActiveX.EXEで提供している)のフォームが、メインプログラムの背後で点滅することにある。この点滅を制御するために、Win32APIのFlashWindowを使うことにした。用法は下記の通り。

'ウィンドウ点滅対策(20041227)
Private Declare Function FlashWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal bInvert As Long) As Long

     :  
 
rl_result = FlashWindow(Me.hwnd, CLng(False))

これで、点滅を強制的に停止させることが出来る....のだが、この点滅が発生するケースでは、表、裏、いずれのフォームもアクティブではない状態(フォーカスがあたっていない状態)になってしまう。これでいいのかなぁ?