티스토리 뷰
컨트롤
표준화된 형태와 특성을 가진 윈도우
사용자로부터 입력을 받거나 정보를 보여주는 용도로 사용
자식 윈도우로만 존재한다.
WM_PAINT 메시지를 받으면 자신을 화면에 그리는 작업을 스스로 하므로 컨트롤 갱신을 신경쓸 필요없다.
컨트롤도 윈도우이다. (일반 윈도우 기능을 모두 사용 가능)
컨트롤 → 부모 윈도우 (통지 메시지)
부모 윈도우 → 컨트롤 (컨트롤 메시지)
- 통지 메시지
컨트롤은 대부분 WM_COMMAND 메시지를 부모윈도우에게 보내지만 경우에 따라서는 다른 메시지를 보내기도 한다.
사용자 행위로 인하여 컨트롤의 상태가 변화 되었음을 알리는 역활
드물게 메모리 부족 등으로 오류에 의해 발생되기도 한다.
- 컨트롤 메시지
부모 윈도우가 컨트롤의 상태를 알아 내거나 변경시키기 위해 이 메시지를 사용한다.
컨트롤 종류에 따라 메시지 종류도 달라진다.
<MFC 표준 컨트롤>
컨트롤 |
MFC클래스 |
컨트롤버튼 |
버튼 컨트롤 |
CButton |
푸시버튼, 체크박스, 라디오버튼, 그룹박스 |
정적 컨트롤 |
CStatic |
텍스트, 프레임, 사각형, 아이콘, 비트맵, 메타파일 |
편집 컨트롤 |
CEdit |
편집 |
리스트 박스 컨트롤 |
CListBox |
리스트 박스 |
콤보 박스 컨트롤 |
CComboBox |
콤보 박스 |
스크롤 바 컨트롤 |
CScrollBar |
수평 스크롤 바, 수직 스크롤 바 |
참고> 934
표준컨트롤 |
공통컨트롤 |
윈도우95 이전부터 지원하는 컨트롤 |
윈도우95부터 지원하는 컨트롤 |
USER.EXE 에 구현되어 있음 |
COMCTL32.DLL에 구현되어 있음 |
WM_COMMAND (통지 메시지) |
WM_NOTIFY |
- |
::InitCommonControls() 혹은 ::InitCommonControlsEx() 를 호출해서 초기화해야 한다. |