2011년9월19일_winAPI_컨트롤, 버튼 컨트롤예제
● 컨트롤(Control)이란 사용자와의 인터페이스를 이루는 도구이다.
인터페이스를 이룬다는 말은 사용자로부터 명령과 입력을 받아들이고 출력 결과를 보여준다는 뜻이므로,
컨트롤은 곧 입출력 도구를 뜻한다.
VS6.0에서 메뉴 – Tools - Options를 선택하면 아래와 같은 대화상자가 뜨고,
대화상자 내부에는 다양한 컨트롤이 사용되었다.
File Type 선택은 콤보박스를 사용하여 파일형식리스트가 보이도록 하였으며,
Tab size와 Indent size 옆에 하얀 박스는 에디트로 값을 입력할 수 있게 되어 있다.
오른쪽은 라디오버튼으로 여러 가지 중에 하나만 선택할 수 있다.
음각으로 파인 네모는 그룹박스로 컨트롤들을 그룹지을 수 있다.
Indent open brace옆에 작은 사각형은 체크박스로 라디오버튼과 다르게 모든 경우의 수를 선택할 수 있다.
Previous lines used for context라는 문자열은 텍스트이다. 텍스트는 왼쪽 위에 더 있다.
맨 아래에는 이번에 실습할 OK버튼과 Cancel버튼이 있다.
이와 같이 컨트롤은 VS6.0 옵션을 설정하여 프로그램을 제어할 수 있다.
windows 3.1부터 지원하는 컨트롤에는,
① 버튼
② 에디트
③ 리스트 박스
④ 콤보 박스
⑤ 스크롤 바
⑥ 스태틱
6가지에 불과했는데 이 6가지를 표준컨트롤이라고 한다.
windows 95부터는 사용할 수 있는 컨트롤의 수가 대폭 증가되었으며 IE와 함께 지속적으로 업그레이드되어 왔다.
현재는 ActiveX컨트롤까지 사용할 수 있어 컨트롤의 수는 거의 무한대에 이른다고 한다. (ActiveX 공화국인 우리나라 ㅠㅠ)
● 컨트롤도 하나의 윈도우이다. 화면상의 일정한 영역을 차지하며 자신의 고유 메시지를 처리할 수 있는 능력을 가지고 있다.
독립적으로 사용되는게 아니며 보통 대화상자의 차일드 윈도우로 존재.
● 컨트롤은 윈도우즈가 운영체제 차원에서 제공하기 때문에 윈도우 클래스를 등록할 필요없이,
미리 등록되어 있는 윈도우 클래스를 사용하기만 하면 된다.
윈도우 클래스 | 컨트롤 |
button | 버튼, 체크, 라디오 |
static | 텍스트 |
scrollbar | 스크롤 바 |
edit | 에디트 |
listbox | 리스트 박스 |
combobox | 콤보 박스 |
● 예제 : Button
▷ main.cpp
▷ MsgProc.cpp
//여기에 소스분석추가
HWND CreateWindow(lpszClassName, lpszWindowName, dwStyle, x, y, nWidth, nHeight, hwndParent, hmenu, hinst, lpvParam) |
<실행결과>