Ach ja, Delphi-Fenster sind "Windows" (CreateWindow) und keine "Dialoge" (CreateDialog/CreateDialogIndirect).
BM_CLICK ist aber eine DialogMessage.
Und selbst wenn es ein Dialog wäre, sagt die Hilfe auch noch
Zitat:
Remarks
If the button is in a dialog box and the dialog box is not active, the BM_CLICK message might fail. To ensure success in this situation, call the SetActiveWindow function to activate the dialog box before sending the BM_CLICK message to the button.
Bei Windows verarbeitet das Control (hier der Button) selber seine Klick-Events und bei Dialogs steckt die Event-Behandlung im Dialog (das Hauptfenster)