在向一个窗体发消息时,窗体最小化时收不到消息,我用的发消息是sendmessage();在vc中此问题不出现,我在主窗体中加入wmcopydata() message wm_copydata函数接收消息,当窗体最小化时接收不到消息,最大化时正常,当窗体在后台时也正常,只有最小花时收不到!!

解决方案 »

  1.   

    我向窗体发消息是为了得到数据,写入数据库,是调用底层程序想窗体发copydata 消息,然后处理,收不到消息,就得不到数据
      

  2.   

    最小化时应该是可以接收消息的。
    发送消息后是否还该加上Application.HandleMessage试试瞧!
      

  3.   

    不知道你是怎么写的,下面是我经常用到的,决对没有问题发送端:procedure Init;
    var
      s                 : pchar;
      h                 : hwnd;
      buf:tagCOPYDATASTRUCT;
    begin
      h := FindWindow('TForm1', Nil);
      if h <> 0 then
      begin
        GetMem(s,100);
        buf.lpData :=s;
        buf.cbData:=100;
        buf.dwData :=100;
        strpcopy(s, ParamStr(0));
        SendMessage(h, WM_COPYDATA, 0, integer(@buf));
      end;
    end;接收端:
    procedure TForm1.WM_COPYDATA(var msg: TMessage);
    var
      P:^tagCOPYDATASTRUCT;
    begin
      p:=Pointer(Msg.lParam);
      ShowMessage(strpas(p.lpData));
    end;
      

  4.   

    好像与Delphi编译环境有关,把Delphi关掉就可以接收到了!!!
    我也是因为这个问题折腾了好多天!!好像Delphi开着时候有些功能就是实现不了。