Um den Focus auf einen anderen Prozess (Fenster (Zorder)) zu setzen gibt es als Beispiel diese Funktion
SetForegroundWindow.. in dem Fall benötigst du kein SetFocus mehr da in diesem Fall deine Anwendung keinen Focus mehr hat.
Und nochmal das setzen des SetFocus(0) hat keinen Einfluss auf irgendeinen Parent. Weder in der ZOrder noch aktiviert es ein anderes Fenster und setzt ihn dort.
Wenn man im Vorfeld mit
AttachThreadInput ne Verbindung aufbaut kann man auch mit SetFocus(fremdThread) hin und her hopsen. (als weiteres Beispiel)
So sind jedenfalls meine Erfahrungen damit, ansonsten gebe auch ich dem letzten part von EWeiss Recht.