= Contrl 종류 = 

 오늘은 잠깐만 WinBinder에서 쓸 수 있는 컨트롤 들을 소개합니다.
 
 간단한 마음으로 이런게 있다는 것만 봐주세요.
 
 아래 이미지를 보시면 각 컨트롤 마다 번호가 붙어있습니다.  (일단 이미지 한번 보시고 ....)
 
== Control 이미지 설명 == 
attachment:ControlList.jpg

 * 이 화면은 winbinder 예제에 포함되는 있는 FormEditor 를 이용해서 만들었습니다.
 
자, 위에 있는 이미지를 보시면 어떤 생각이 드시나요? ^^
 
전 처음에 생각보다 지원하는 컨트롤 들이 많구나, 진짜 하나 만들어 볼 수도 있겠다는 생각이 들었습니다. ^^
 
그럼 간단하게 번호마다 어떤 컨트롤인지 소개를 해볼게요.
 
 * '''PushButton''' 이라고 하는 일반적인 버튼입니다. 가장 기본적인 컨트롤 중에 하나죠.
 * '''EditBox''' 라고 합니다. 텍스트 입력을 받아 들일 수 있는 기본 컨트롤 입니다. 화면상에는 한줄 밖에 입력 못하는 것 같지만  그 외에 몇가지 기능들이 더 있습니다. 비밀번호 입력시 별표 표시 기능이라던가, 여러줄 입력할 수 있게 한다던가 하는 기능들이 있습니다.
 * '''ImageButton''' 이라고 합니다. 화면은 그냥 단순히 이미지만 보이죠. ^^; 실제로는 버튼입니다. PushButton 과 같은 일반적인 버튼 이외에 좀 더 이미지가 들어간 버튼을 만들 때 사용합니다.
 * '''CheckBox''' 입니다. 선택한 값이 유지가 됩니다.
 * '''RadioButton''' 입니다. 여러 RadioButton 중에 하나의 값만 선택 할 수 있는 컨트롤 입니다.
 * '''HyperLink''' 버튼입니다. 누르면 외부 http 링크로 이동하게됩니다.
 * '''Label''' 입니다. win32 에서는 static 이라고 부르는 컨트롤 입니다. 수정할 수 없는 텍스트만 가능한 컨트롤입니다.
 * '''Calendar''' 입니다. 달력 컨트롤입니다.
 * '''TabControl''' 입니다. 탭 안에 여러 컨트롤들을 포함할 수 있습니다.
 * '''RTFEditBox''' 입니다. Rich Text Format 을 읽고 쓸 수 있는 컨트롤입니다. 일반적인 텍스트 입력이 아닌 색깔있는 입력을 원하시는 경우는 이것을 사용하시면 됩니다.
 * '''InvisibleArea''' 입니다. 보이지 않는 영역이며 특정 영역에서 이벤트를 받아들일때 사용 할 수 있습니다.
 * '''ComboBox''' 입니다.  여러개의 리스트 중에 하나의 값을 선택하는 컨트롤입니다. 표시될때는 한줄만 표시됩니다.
 * '''Gauge''' 입니다. 일반적으로 Progress Bar 라고 불리우는 진행바 입니다. 현재 % 에 따라 진행상태가 표시됩니다.
 * '''HTMLControl''' 입니다. 웹브라우저를 구현해놓았습니다. 하지만 화면 표시 외에 특별히 할 수 있는 기능이 없습니다. 앞,뒤 이동 정도 ^^;;; , 혹시나 플래쉬 파일 보여줄때나 다른 유투브 동영상 같은걸 보여줄 때 사용하면 좋을 것 같습니다.
 * '''Spinner''' 입니다. EditBox 옆에 붙어서 숫자를 올리거나 내릴 때 사용합니다.
 * '''Slider''' 입니다. 최소값과 최대값중에 정해진 값을 선택 할 수 있는 컨트롤입니다. ScrollBar 와 비슷합니다.
 * '''Frame''' 입니다. 화면상에 특정 영역을 지정할 때 사용합니다. 제목을 표시해줄 수도 있습니다. 내부에는 다른 컨트롤들을 위치시킵니다.
 * '''ListBox''' 입니다. ComboBox와 마찬가지로 여러가지 값들중에 특정 값을 선택합니다.
 * '''TreeView''' 입니다. 탐색기에서 사용되는 트리구조를 표시하기 위해서 사용합니다.
 * '''ScrollBar''' 입니다. Slider와 마찬가지로 최소, 최대 중에 값을 선택하기 위해서 사용합니다.
 * '''ListView''' 입니다. 헤더를 가지고 각각의 값들을 테이블 형태로 보여주는 컨트롤입니다.
 
attachment:ControlList2.jpg  
 * '''Menu''' 입니다. 1차원적은 메뉴만 가능합니다. 메뉴에 메뉴가 다시 들어갈 수 없습니다. 기능이 조금 미약해요.
 * '''ToolBar''' 입니다. 메뉴와 거의 같은 형태로 동작합니다.
 * '''StatusBar''' 입니다. 현재 윈도우 상태를 표시해줄때 자주 사용합니다. 상태표시줄이라고도 하며 각 셀의 넓이를 조정하는 것이 가능합니다.
 
그리고 마지막으로
 
 * '''Accel''' 이 있습니다. Accel은 윈도우에 단축키를 설정해주는 컨트롤입니다. 외부로 보이지는 않습니다.
 
앞으로 이러한 컨트롤들을 하나씩 알아보면서 기능을 구현해 볼 예정입니다.
모두 oop 형태로 구현이 될 것 이구여, 그렇게 복잡하지는 않을 것 입니다.
(현재 어느정도 구현되어 진것도 있고 아닌 것들도 있습니다. )
 
WinBinder를 쓰시면 아시겠지만 완전히 Win32 를 모두 지원하는 것이 아닙니다.
실제로 중요한 기능은 외부 dll 을 호출해서 사용해야 하는 것들도 많이 있습니다.
 
하지만 이러한 컨트롤들을 표현하는데 php로 아주 쉽게 된다는 점만 명심하시면 조금이나마 편리하게 괜찮은 프로그램을 만들 수 있지 않을까 합니다.
 
이번에 소개된 control 들을 보시면서 간단하게 만들어볼 프로그램 인터페이스를 그려보는 것도 좋은 것 같습니다. ^^
혹시 나중에 만들어볼지도 모르니깐요. ^^
 
다음 강좌는 Window, Control 들의 구조가 어떻게 이루어지고 oop 형태로 어떻게 구현되었는지 알아보겠습니다.
오늘도 즐거운 하루 되세요. ^^
