如何在主程序(注意:是主程序不是主窗体)获得windows发往主程序的消息,
然后将消息发往我希望接收这条消息的窗体。例如主程序接收到WM_PAINT消息,就把这个消息转发给TForm1, 或者把自定义消息发给TForm1,
在TForm1中再处理这个消息。一般的工程文件都是这样写的
program sample1;uses
  Forms,
  u_main in 'u_main.pas' {Form1};{$R *.RES}begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.应该如何根据我的要求改写。
请大侠们写出具体代码,万分感谢!

解决方案 »

  1.   

    给你参考
        procedure WMSysCommand(var Sysss: TWMSysCommand);message WM_SYSCOMMAND;
      public
      end;
    var
      MyTest: TMyTest;
    implementation
    {$R *.dfm}
    procedure TMyTest.WMSysCommand(var Sysss: TWMSysCommand); //拦截系统消息
    begin
      with Sysss do
      begin
        if (CmdType and $FFF0 = SC_MINIMIZE) or (CmdType and $FFF0 = SC_CLOSE) then
        begin
          ShowWindow(MyTest.Handle,SW_HIDE);
          Exit;
        end;
        inherited;
      end;
    end;
      

  2.   

    放一个ApplicationEvents控件
    在OnMessage事件中处理所有发到主程序的消息
      

  3.   

    jan2002(阿吉)说的做法简便些,实质一样。
      

  4.   

    一个进程序只存在一个消息链,看清楚Application.Initialize;的代码