如何将Windows消息发送到非主窗体

cwa*_*cwa 1 delphi delphi-7

如何将Windows消息发送到我的应用程序中不是MainForm的表单?使用下面的代码给我一个访问冲突.

procedure TMainForm.SendMessageToAnotherForm;
begin
  SendMessage(MyForm.Handle,WM_MY_MESSAGE,0,0);
end;
Run Code Online (Sandbox Code Playgroud)

MyForm已经创建,是最顶层的窗口.

编辑:我也尝试过PostMessage,但我收到了相同的访问冲突,我很肯定WM_MY_MESSAGE是有效的,因为我用它来与其他地方的MainForm进行通信.

klu*_*udg 8

使用上述代码获取访问冲突的最可能原因是MyForm = nil或野指针.使用SendMessage调用在代码行上设置断点并检查它.如果MyForm是有效的引用,则MyForm中的消息处理会导致访问冲突.