인터넷/IT/프로그래밍

DwmSetWindowAttribute 을 이용하여 창 애니메이션 없애기

coffee94 2014. 3. 11. 10:49

윈도우 비스타 이상에서 에어로 효과가 활성화되어 있을 경우 창을 숨기거나 할 때 애니메이션 효과가 발생하면서 바로 숨겨지지 않습니다.


때로는 바로 숨겨져야 할 상황이 있어서 애니메이션 효과를 없애야 하는 경우가 있는데 다음과 같이 해결이 가능합니다.


var
  Disable: BOOL;
begin
  if Win32MajorVersion >= 6 then
  begin

    // 윈도우 비스타 이상일 경우..
    Disable := True;
    DwmSetWindowAttribute(Self.Handle, DWMWA_TRANSITIONS_FORCEDISABLED,
      @Disable, SizeOf(Disable));
  end;