Um einen Maus-Klick auf zB einen 'Cancel'-Button eines Catia-Dialoges zu simulieren, reicht es, ein 'BM_CLICK' an das Fenster des Buttons zu schicken.
Gelegentlich reagiert hierbei der Dialog aber nicht, d.h. er schliesst nicht.
Aus der SDK-Doku zu BM_CLICK:
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.
MS empfiehlt also, vor dem Senden des 'BM_CLICK' das Dialog-Fenster zu aktivieren. Etwa so:
Private Sub PushButton(hwnd As Long) 'push catia button
SetActiveWindow hWndDlg 'activate dialog
SendMessageByNum hwnd, BM_CLICK, 0&, 0& 'send click message to dialog button
End Sub