OK, hab's jetzt in OnActivate verschoben, da geht's.
Allerdings verstehe ich an deiner Erklärung nicht, warum der Cursor korrekt angezeigt wird wenn man im OnCreate ein Dummy-Fenster erzeugt.
OnShow
wird zu dem Zeitpunkt gefeuert, wie es der Name verspricht:
während des Anzeigens (das aber aktuell noch nicht abgeschlossen ist).
Sonst würde das Ereignis auch
OnAfterShow
oder
OnShowed
heißen.
Du sendest jetzt im OnShow per PostMessage eine Nachricht und die geht in die Queue. Wenn deine OnShow Methode verlassen wird, dann werden im Zuge des Anzeigens noch die ein oder andere Nachricht verschickt (mit PostMessage) um z.B. den Fokus zu setzen.
Darum geht das so nicht