Frozen0113 2014. 5. 8. 06:23

컨트롤(Control)

 

 컨트롤(Control)이란 사용자와의 인터페이스를 이루는 도구이다. 인터페이스를 이룬다는 말은 사용자로부터 명령과 입력을 받아들이고 출력 결과를 보여준다는 뜻이므로 컨트롤은 곧 입출력 도구를 뜻한다.

 

 

 컨트롤을 사용하면 도스나 콘솔 환경에서의 getch, scanf등의 함수들을 사용하는 것보다 안전하고 편리하다. 만약 컨트롤이 없다면 사용자에게 현재 설정된 옵션을 보여줄 방법도, 옵션을 바꾸도록 하지도 못할 것이다. Contrrol을 직역하면 "제어, 조절"이라는 뜻인데 이 말 뜻대로 컨트롤은 사용자가 프로그램을 제어하는 수단이다. 컨트롤의 의미를 한마디로 설명하기는 힘들지만 버튼, 에디트, 리스트 박스, 스크롤 바 등을 컨트롤이라고 한다.

 

 

 윈도우즈 3.1부터 지원하는 컨트롤에는 버튼, 에디트, 리스트 박스, 콤보 박스, 스크롤 바, 스태틱 등 여섯 가지에 불과했는데 이 여섯개를 표준 컨트롤이라고 한다. 윈도우즈 95부터는 사용할 수 있는 컨트롤 수가 대폭 증가되었으며 IE와 함께 지속적으로 업그레이드 되어 왔다. 현재는 ActiveX 컨트롤까지 사용할 수 있어 컨트롤의 수는 거의 무한대에 이른다.

 

 

 컨트롤도 하나의 윈도우이다. 화면상의 일정한 영역을 차지하며 자신의 고유 메시지를 처리할 수 있는 능력을 가지고 있다. 그렇다고  해서 메모장이나 탐색기 같은 진짜 윈도우처럼 타이틀 바나 경계선을 가지고 독립적으로 사용되는 것은 아니며 보통 대화상자의 차일드 윈도우로 존재한다.

 

 윈도우를 만들 때는 WNDCLASS형의 구조체를 정의하고 RegisterClass 함수로 등록한 후 CreateWindow 함수를 호출한다. 그러나 컨트롤은 윈도우즈가 운영체제 차원에서 제공하기 때문에 윈도우 클래스를 등록할 필요 없이 미리 등록되어 있는 윈도우 클래스를 사용하기만 하면 된다.

 

 

윈도우 클래스 

 컨트롤 

 button

 버튼, 체크, 라디오

 static

 텍스트

 scrollbar

 스크롤 바

 edit

 에디트

 listbox

 리스트 박스

 combobox

 콤보 박스

 

 

 이 윈도우 클래스들은 시스템 부팅시에 운영체제에 의해 등록되므로 윈도우 클래스를 따로 등록할 필요없이 CreateWindow함수의

첫 번째 인수로 클래스 이름만 주면 해당 컨트롤을 만들 수 있다.

 

출처 - 윈도우즈 API 정복

 

 

 

 

 

출처 http://msdn.microsoft.com/en-us/library/windows/desktop/bb773169(v=vs.85).aspx