Wie ist denn WM_SWITCHCHECKBOX deklariert? Möglicherweise gibt es bereits eine WM Botschaft mit der selben ID, die von WndProc verarbeitet wird und somit nicht an deinen Message Handler weitergeleitet wird.
Zitat:
procedure TMySubForm2.wmSwitchCheckBox(var Msg: TMessage);
begin
if (Msg.Msg = wm_SwitchCheckBox) then
Die IF-Anweisung kannst du dir sparen, da bei dem Message Handler sowieso nur die WM_SWITCHCHECKBOX ankommt.
Zitat:
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(MySubForm2.Handle, wm_SwitchCheckBox, 1, 0);
end;
Könnte man das nicht über Interfaces viel besser lösen?