0

私は、表示されているウィンドウ (およびデスクトップ上の他のアプリケーションからも) からフォーカスを常に削除する Windows デスクトップアプリケーションを維持しています。これは明らかにエラーであり、修正したいのですが、アプリケーションが古く (Borland C++Builder 6)、そのコードは非常に広範です。イベントをトレースしようとしましFormActivateFormDeactivateが、それぞれが一度だけ発生します。ウィンドウFormActivateを表示した後とFormDeactivate閉じたときです。

VCL フォームへのフォーカスの変更をプログラムで追跡することは可能ですか?

4

1 に答える 1

0

このTForm::OnActivateイベントは、フォームが最初に表示されたとき、およびフォーカスが同じアプリケーション プロセス内の別のフォームに移動してから戻ったときにトリガーされます。

このTForm::OnDeactivateイベントは、フォームが非表示になっているとき、およびフォーカスが同じアプリケーション プロセス内の別のフォームに移動しているときにトリガーされます。

フォーカスが別のプロセスに移動してから自分のプロセスに戻った場合、TForm::OnActivateおよびTForm::OnDeactivateイベントはトリガーされません。TApplication::OnActivateTApplication::OnDeactivateイベントが代わりにトリガーされます。

于 2015-03-12T19:30:10.913 に答える