我想让form的窗口跳到最前端显示,有QQ视频那样的效果就可以了,不必像任务管理器那样一直在上头,但是如果用
      SetWindowPos(Form1.Handle ,HWND_TOPMOST,0,0,0,0,SWp_NOMOVE Or SWP_NOSIZE);    
      SetWindowPos(Form1.Handle ,HWND_NOTOPMOST,0,0,0,0,SWp_NOMOVE Or SWP_NOSIZE);  
经常程序一上来就回不去了不知道有没有说明好的办法啊?

解决方案 »

  1.   

    20分太少。虽然几个API函数可以帮你解决,但你的分也太没有诚意。
      

  2.   

    在某个窗体中执行以下代码就行了:
    Application.BringToFront;
    Self.BringToFront;
      

  3.   

    楼上的代码不行了,只会在让程序在任务栏闪一两下就没有了,正确的答案如下:
    var
      hForegdWnd: THandle;
      dwCurID: THandle;
      dwForeID: THandle;
    begin
      hForegdWnd := GetForegroundWindow();
      if hForegdWnd <> Handle then
      begin
        if IsIconic(Application.Handle) then
          Application.Restore;
        dwCurID := GetCurrentThreadId();
        dwForeID := GetWindowThreadProcessId(hForegdWnd, nil);
        AttachThreadInput(dwCurID, dwForeID, TRUE);
        SetForegroundWindow(Handle);
        AttachThreadInput(dwCurID, dwForeID, FALSE);
      end;
    end;