Programming/C#
[Unity3D, C#] 프로그램 윈도우 창 최소화, 최대화, 맨앞으로 활성화
타임박스
2021. 11. 10. 22:37
반응형
✔ 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
감사합니다.
반응형