본문 바로가기
Programming/C#

[Unity3D, C#] 프로그램 윈도우 창 최소화, 최대화, 맨앞으로 활성화

by 타임박스 2021. 11. 10.
반응형


✔ C# Window user32.dll

ShowWindow - MinimizeWindow, FullWindow



윈도우를 사용하면 창 최소화 최대화 버튼을 흔히 볼 수 있다.

프로그램에서 윈도우처럼 최소화버튼을 누르면 프로그램이 작업표시줄 밑으로 숨겨지고 최대화누르면 전체화면으로 되는 기능을 어떻게 만들까?

user32.dll을 사용하면된다.

사용법은 아래와 같다.

//창 속성 정의
[DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);

//현재 활성화된 창의 IntPtr을 가져오는 함수
[DllImport("user32.dll")]
private static extern IntPtr GetActiveWindow();
 
public void OnMinimizeWindow()
{
    //현재 활성화된 창을 최소화 
    ShowWindow(GetActiveWindow(), 2);
}

public void OnFullWindow()
{
    //현재 활성화된 창을 최대화
    ShowWindow(GetActiveWindow(), 3);
}

ShowWindow 함수의 2번째 파라미터로 최대화 할지 최소화 할지 속성을 정의할 수 있다.

2 : 최소화

3 : 최대화

가장 많이 사용되는 파라미터 값이며 다른 창 속성 정의를 원한다면 정보는 아래 링크에서 확인 할 수 있다.

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow

 

ShowWindow function (winuser.h) - Win32 apps

Sets the specified window's show state.

docs.microsoft.com

 

감사합니다.

반응형

댓글