0

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

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

4

1 回答 1

0

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

TForm::OnDeactivate当 Form 被隐藏并且焦点移动到同一应用程序进程中的另一个 Form 时触发该事件。

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

于 2015-03-12T19:30:10.913 回答