在VCL应用程序中跟踪焦点获取和丢失表单

时间:2015-03-12 11:43:11

标签: c++ windows tracing c++builder-6

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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