有两个应用程序,应用程序B发送一个消息到A,A要弹出一个窗口,问题是A弹出的窗口在B界面的下面(因为B现在是ActiveForm),怎么能实现A弹出的窗口置前?

解决方案 »

  1.   

    把程序A的窗口的属性FormStyle设为fsStayOnTop这样行不?
      

  2.   

    用ShowWindow(A.Handle, SW_Show)试试看。
    不知道行不行!!!!!
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      hh: THandle;
    begin
      hh := FindWindow(nil,'计算器');
      if hh = 0 then Self.Caption := FormatDateTime('HHMMSS', Now) + 'null';
      //SendMessage(hh, WM_ACTIVATE, 1, 1);
      //SendMessage(hh, WM_ACTIVATEAPP, 0, 0);
      ShowWindow(hh, SW_HIDE);
      //SendMessage(hh, wm)
      //if IsIconic(hh) then
        ShowWindow(hh, SW_RESTORE)
      //else
      //hh := GetWindow(hh, GW_OWNER);
      //SetActiveWindow(hh);
    end;
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      hh: THandle;
    begin
      hh := FindWindow(nil,'计算器');
      if hh = 0 then Self.Caption := FormatDateTime('HHMMSS', Now) + 'null';
      SetActiveWindow(hh);
      SetForegroundWindow(hh);
    end;
      

  5.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
      hh: THandle;
    begin
      hh := FindWindow(nil,'计算器');
      if hh = 0 then Self.Caption := FormatDateTime('HHMMSS', Now) + 'null';
      if IsIconic(hh) then
        ShowWindow(hh, SW_RESTORE)
      else
        SetForegroundWindow(hh);
    end;