Можно повесить hook и обрабатывать сообщение WM_ACTIVATE. Если совсем попроще, то можно в бесконечном цикле вызывать GetActiveWindow.
в бесконечном цикле вызывать GetActiveWindow )))))))))))) В крайнем случае хотя бы по таймеру с интервалом 10ms...
Самый нормальный способ - установить ловушку типа WH_GETMESSAGE, используя SetWindowsHookEx и ловить, как было сказано, WM_ACTIVATE. Ничего сложного в этом нету