跟踪 VCL 应用程序中表单的焦点增益和丢失

tracking focus gain and loss of a form in a VCL application

本文关键字:焦点 VCL 应用程序 表单 跟踪      更新时间:2023-10-16

我维护一个Windows桌面应用程序,该应用程序不断从其可见窗口(以及桌面上的其他应用程序)中删除焦点。这显然是一个错误,我想修复它,但是该应用程序很旧(Borland C++Builder 6),其代码非常广泛。我尝试跟踪FormActivateFormDeactivate事件,但每个事件只发生一次:显示后FormActivate,关闭窗口时FormDeactivate

是否可以以编程方式跟踪 VCL 表单的焦点更改?

当表单最初显示时,以及焦点已移动到同一应用程序进程中的另一个表单,然后再返回时,将触发 TForm::OnActivate 事件。

当表单

被隐藏时,以及当焦点移动到同一应用程序进程中的另一个表单时,将触发 TForm::OnDeactivate 事件。

当焦点移动到另一个进程,然后返回到您的进程时,不会触发TForm::OnActivateTForm::OnDeactivate事件。 而是触发TApplication::OnActivateTApplication::OnDeactivate事件。