象Realplayer有个选项Always on top,能实现即使焦点不在程序上也能让程序在其它所有程序得上面,不知道应该怎么做?麻烦说详细点,谢谢!

解决方案 »

  1.   

    Form有一个属性可以设置的,具体我忘记了,晚上告诉你;)
      

  2.   

    API SetWindowPos
    看Google上http://lysoft.7u7.net
      

  3.   

    SetWindowPos(Form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);
    位于最顶端
    SetWindowPos(Form2.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE);
    位于最底端
      fsOnTop也可以,不过有闪烁吧
      

  4.   

    我随便写了个函数,你看看吧.
    //delphi 7procedure TForm1.SetFormOnTop(Form:TForm;F:Boolean);
    begin
      if F then
        SetWindowPos(Form.Handle, HWND_TOPMOST, 0, 0, 0, 0,
               SWP_NOMOVE or SWP_NOSIZE)
      else
        SetWindowPos(Form.Handle, HWND_NOTOPMOST, 0, 0, 0, 0,
               SWP_NOMOVE or SWP_NOSIZE);
    end;//C++ Builder6void __fastcall TMainForm::SetFormOnTop(TForm *Form,bool isTop)
    {
      if(isTop)
        SetWindowPos(Form->Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
      else
        SetWindowPos(Form->Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
    }
      

  5.   

    FormStyle设置成fsStayOnTop就可以了!
      

  6.   

    FormStyle设置为fsStayOnTop可以实现,本质就是调用setwindowpos这个api函数
      

  7.   

    小心,SetWindowPos后,一些XP界面控件会失效,像我用那个XPMenu!!