본문 바로가기

Library/.NET Framework with C#

Form에서 원하는 윈도우 스타일 지정

Win32 API인 CreateWindow() 계열의 함수를 사용하여 윈도우를 생성하던 사람은, WNDCLASS와 윈도우 스타일을 지정하여 원하는 윈도우를 생성했을 것이다. 그렇지만, Form 프로그래밍에서는 함수 몇개로 이러한 윈도우 모습을 지정하기보다는, 여러개의 확실히 구분된 프로퍼티를 통해서 윈도우 형태를 결정하게 된다. 따라서 처음 Form을 접하는 사람은 어떤 프로퍼티를 지정해야 원하는 효과를 낼 수 있는지 혼란스러울 것이다.


* 캡션바의 최소화, 최대화, Close 아이콘에 대해서 설정하려면, Form의 MinimizeBox, MaximizeBox 프로퍼티를 설정한다.

* 윈도우 스타일에서 WS_MAXIMIZE, WS_MAXIMIZE와 같은 효과를 내려면 Form의 WindowState 프로퍼티를 설정한다.

* 생성된 윈도우의 테두리, 캡션바 따위에 대한 설정을 하려면 Form의 FormBorderStyle 프로퍼티를 설정한다.

* Form의 Size, Width, Height는 클라이언트 영역이 아닌, 캡션바와 테두리까지 포함한 전체 윈도우의 크기를 알려준다. 클라이언트 영역의 크기를 설정하고 싶다면, ClientSize, ClientRectange 프로퍼티를 사용하면 된다. ClientRectange 프로퍼티는 읽기만 할 수 있다.

예를 들어, 크기를 재설정하지 못하게, 그리고 화면을 최대로, 최대화 버튼은 사용하지 못하도록 하려면 Form에서 다음과 같이 프로퍼티를 설정하면 된다.

MaximizedBox = false;
WindowState = System.Windows.Forms.FormWindowState.Maximized;
FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;