어떻게 Windows Form 으로 창 에 간단 한 애니메이션 효 과 를 추가 합 니까?
5997 단어 WindowsForm창구.애니메이션 효과
창 애니메이션 효과
먼저 애니메이션 도구 클래스 를 정의 하고 AnimateWindow 함 수 를 도입 합 니 다.
public class WindowsEffects
{
public const int AW_ACTIVATE = 0x00020000; // 。 AW_HIDE 。
public const int AW_BLEND = 0x00080000; // 。 hwnd 。
public const int AW_CENTER = 0x00000010; // AW_HIDE, ; AW_HIDE, 。 。
public const int AW_HIDE = 0x00010000; // 。 , 。
public const int AW_HOR_POSITIVE = 0x00000001;// 。 。 AW_CENTER AW_BLEND , 。
public const int AW_HOR_NEGATIVE = 0x00000002;// 。 。 AW_CENTER AW_BLEND , 。
public const int AW_SLIDE = 0x00040000;// 。 , 。 AW_CENTER , 。
public const int AW_VER_POSITIVE = 0x00000004; // 。 。 AW_CENTER AW_BLEND , 。
public const int AW_VER_NEGATIVE = 0x00000008; // 。 。 AW_CENTER AW_BLEND , 。
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int AnimateWindow(IntPtr hwand, int dwTime, int dwFlag);
}
창 이 왼쪽 에서 오른쪽으로 펼 쳐 집 니 다.
Form2 animateForm;
private void button1_Click(object sender, EventArgs e)
{
animateForm = new Form2();
WindowsEffects.AnimateWindow(animateForm.Handle, 3000, WindowsEffects.AW_HOR_POSITIVE);
}
왼쪽 위 에서 오른쪽 아래 까지 창 을 엽 니 다.
private void button2_Click(object sender, EventArgs e)
{
animateForm = new Form2();
WindowsEffects.AnimateWindow(animateForm.Handle, 3000, WindowsEffects.AW_HOR_POSITIVE ^ WindowsEffects.AW_VER_POSITIVE);
}
중심 에서 창 펼 치기
private void button3_Click(object sender, EventArgs e)
{
animateForm = new Form2();
WindowsEffects.AnimateWindow(animateForm.Handle, 3000, WindowsEffects.AW_CENTER);
}
창 페 이 드 인
private void button4_Click(object sender, EventArgs e)
{
animateForm = new Form2();
WindowsEffects.AnimateWindow(animateForm.Handle, 3000, WindowsEffects.AW_BLEND);
}
창 페이드아웃
private void button5_Click(object sender, EventArgs e)
{
animateForm = new Form2();
animateForm.Show();
WindowsEffects.AnimateWindow(animateForm.Handle, 3000, WindowsEffects.AW_HIDE ^ WindowsEffects.AW_BLEND);
animateForm.Close();
}
함수 에 대한 소개AnimateWindow 함수 User32.dll 에서 Windows 2000 까지 최소 지원
참고:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-animatewindow
BOOL AnimateWindow(
HWND hWnd, // 。 。
DWORD dwTime, // , 。 , 200 。
DWORD dwFlags // 。 。 , , 。 , AW_HIDE 。
);
dwFlags 매개 변수 값 목록명칭.
값.
속뜻
AW_ACTIVATE
0x00020000
창 을 활성화 합 니 다.AW 에 있 지 마 세 요.HIDE 에서 이 값 을 사용 합 니 다.
AW_BLEND
0x00080000
페 이 드 효과 사용.이 플래그 는 hwnd 가 최상 위 창 일 때 만 사용 할 수 있 습 니 다.
AW_CENTER
0x00000010
AW 를 사용 했다 면HIDE 는 창 을 안 으로 접 는 것 처럼 보이 게 합 니 다.AW 를 사용 하지 않 았 다 면HIDE 는 창 을 밖으로 펼 칩 니 다.서로 다른 방향 표 지 는 효과 가 없다.
AW_HIDE
0x00010000
창 숨 기기.기본적으로 창 이 표 시 됩 니 다.
AW_HOR_POSITIVE
0x00000001
창 을 왼쪽 에서 오른쪽으로 애니메이션 효 과 를 냅 니 다.이 플래그 는 스크롤 이나 슬라이드 애니메이션 에 사용 할 수 있 습 니 다.AWCENTER 또는 AWBLEND 를 함께 사용 할 때 무시 합 니 다.
AW_HOR_NEGATIVE
0x00000002
오른쪽 에서 왼쪽으로 창 을 애니메이션 효과 가 있 습 니 다.이 플래그 는 스크롤 이나 슬라이드 애니메이션 에 사용 할 수 있 습 니 다.AWCENTER 또는 AWBLEND 를 함께 사용 할 때 무시 합 니 다.
AW_SLIDE
0x00040000
슬라이드 애니메이션 을 사용 합 니 다.기본적으로 스크롤 애니메이션 을 사용 합 니 다.AWCENTER 가 함께 사용 할 때 이 플래그 는 무 시 됩 니 다.
AW_VER_POSITIVE
0x00000004
위 에서 아래로 애니메이션 창.이 플래그 는 스크롤 이나 슬라이드 애니메이션 에 사용 할 수 있 습 니 다.AWCENTER 또는 AWBLEND 를 함께 사용 할 때 무시 합 니 다.
AW_VER_NEGATIVE
0x00000008
아래 에서 위로 창 을 애니메이션 효과 가 있 게 합 니 다.이 플래그 는 스크롤 이나 슬라이드 애니메이션 에 사용 할 수 있 습 니 다.AWCENTER 또는 AWBLEND 를 함께 사용 할 때 무시 합 니 다.
AnimateWindow 방법 호출 에 성공 하면 0 이 아 닌 값 을 되 돌려 주 고 호출 에 실패 하면 0,즉 false 를 되 돌려 줍 니 다.다음 상황 에서 호출 실패 할 수 있 습 니 다:
AWHOR_POSITIVE 또는 AWHOR_NEGATIVE 와 AWVER_POSITIVE 또는 AWVER_NEGATIVE 가 조합 되 어 대각선 으로 창 을 애니메이션 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
가장 간단한 웹 브라우저를 만들어 보았습니다.Visual Studio 2017을 시작한 후 새 프로젝트에서 Windows Forms Application (.NET Framework)을 선택하여 새 솔루션을 만듭니다. 표준 폼에 ComboBox 컨트롤과 Web...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.