我做了一个聊天窗口,当最小化时或是被其它窗口挡住时,来了消自己,自动跳至桌面的最前端来,怎么老是不能实现啊?
我的代码如下:  IF IsIconic(FrmChat.Handle) then
  Begin
     SetWindowPos(FrmChat.Handle,   HWND_TOPMOST,   0,   0,   0,   0,
                  SWP_NOMOVE   or   SWP_NOSIZE)       ;
  End
  Else
  Begin
     SetWindowPos(FrmChat.Handle,   HWND_NOTOPMOST,   0,   0,   0,   0,
                        SWP_NOMOVE   or   SWP_NOSIZE);
请指点一下,谢谢!

解决方案 »

  1.   


    procedure TForm1.Button2Click(Sender: TObject);
    var
      vHwnd : hwnd;
    begin
      winexec('calc.exe',SW_SHOWNORMAL);
      vHwnd := findwindow(nil,'calc.exe');
      if vHwnd <> 0 then
      SetForegroundWindow(vHwnd);
    end;
      

  2.   

    看這個,上面那個讓JAVA碰了腦袋了。
    procedure TForm1.Button2Click(Sender: TObject);
    var
      vHwnd : hwnd;
    begin  vHwnd := findwindow(nil,'小算盤');
      if vHwnd = 0  then winexec('calc.exe',SW_SHOWNORMAL);
      if vHwnd <> 0 then
      SetForegroundWindow(vHwnd);
    end;
      

  3.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      vHwnd : hwnd;
    begin  vHwnd := findwindow(nil,'小算盤');
      if vHwnd = 0  then winexec('calc.exe',SW_SHOWNORMAL);
      if vHwnd <> 0 then
      begin
        ShowWindow(vHwnd,SW_SHOWNORMAL);
        SetForegroundWindow(vHwnd);
      end;
    end;