我维护一个Windows桌面应用程序,它不断地从可见窗口(以及桌面上的其他应用程序)中移除焦点。这显然是一个错误,我想修复它,但应用程序是旧的(Borland C ++ Builder 6),它的代码非常广泛。我尝试跟踪FormActivate
和FormDeactivate
个事件,但每个事件只发生一次:显示后FormActivate
和关闭窗口时FormDeactivate
。
是否可以通过编程方式跟踪对VCL表单的焦点更改?
答案 0 :(得分:0)
最初显示表单时,以及当焦点移动到同一应用程序进程中的另一个表单然后返回时,会触发TForm::OnActivate
事件。
隐藏表单时,以及当焦点移动到同一应用程序进程中的另一个表单时,会触发TForm::OnDeactivate
事件。
当焦点转移到另一个流程,然后返回到您的流程时,不会触发TForm::OnActivate
和TForm::OnDeactivate
个事件。而是触发TApplication::OnActivate
和TApplication::OnDeactivate
事件。