Delphi 창이 마우스가 미끄러지는 것을 감지하고 창을 자동으로 숨기고 표시하는 방법

1462 단어
본고의 실례는델파이가 마우스가 미끄러지는 것을 감지하고 창을 자동으로 숨기고 표시하는 방법을 설명한다.여러분에게 참고하도록 공유하다.구체적인 실현 방법은 다음과 같다.

const
 WM_MouseEnter = $B013;
 WM_MouseLeave = $B014;
type
 TfrmMain = class(TForm)
  .
  .
 Timer1: TTimer;
 procedure Timer1Timer(Sender: TObject);
 protected
 procedure WMMouseEnter(var Msg: TMessage); message WM_MouseEnter;
 end;
implementation
{$R *.dfm}
procedure TfrmMain.WMMouseEnter(var Msg: TMessage);
begin
 if(Top<0) then
 begin
 Top := 0;
 //              
 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
 //       
 SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
 //        
 end;
 Timer1.Enabled := True;
end;
//                    ,
//                 MOUSELEAVE  
procedure TfrmMain.Timer1Timer(Sender: TObject);
var
 rc:TRECT;
 pt:TPOINT;
begin
 GetWindowRect(self.Handle,rc); //        
 GetCursorPos(pt); //          
 if(not PtInRect(rc,pt)) then //           
 begin
  if(Top = 0) then
  //              ,       
  begin
   Top := 0-Height+2;
  end;
  Timer1.Enabled := False; //          
  SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
  //       
 end;
end;

본고에서 서술한 것이 여러분의 Delphi 프로그램 설계에 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기