注意:要能在WS_EX_TOPMOST风格的窗口之上显示。
既Windows2000的任务管理器窗口也不能遮盖,能实现吗?在Delphi中我设置窗口的风格为WS_EX_TOPMOST,但仍然会被MediaPlayer的VCD播放窗口遮盖,我需要我的窗口form1在VCD播放之上。请帮帮助!!!

解决方案 »

  1.   

    1,additional面板-TApplicationEvents组件拖入form1
    2,在该组件的idle事件中
      procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
      var Done: Boolean);
      begin
      sendmessage(Form1.Handle,WS_EX_TOPMOST,0,0);
      //或者 SetWindowPos(self.Handle,HWND_TOPMOST,0,0,0,0,1);
      end;
      实现的机制是一样的。
    3,测试没有没有被你列的窗口挡住。
      

  2.   

    procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
      var Done: Boolean);
    begin
      SetWindowPos(Handle,
      HWND_TOPMOST,
      0, 0, 0, 0,
      SWP_NOMOVE OR
      SWP_NOACTIVATE OR
      SWP_NOSIZE);
    end;