컴퓨터 공부/Win32 API 프로그래밍

[5월 1일 2교시] 대화상자 1

려리군 2009. 5. 1. 15:26

대화상자

명령 및 정보 전달을 위한 특별한 윈도우

모달(modal)형 : 대화상자를 닫기 전에 다른 윈도우로 전환될 수 없다.

모델리스(modeless)형 : 대화상자를 열어 놓은 채 다른 윈도우로 전환가능.


대화상자 템플릿 : 대화상자 내 컨트롤 배치 상태가 저장되는 이진 정보. -> 리소스 ID로 컨트롤 및 대화상자 구분.

대화상자 프로시저 : 대화상자에서 발생하는 메시지 처리


컨트롤의 종류

출처 : http://www.winapi.co.kr/win32lec/lec8/lec8-2-1.htm

탭 순서(Tab order)
탭 키를 누를 때 포커스가 이동되는 순서
서식/탭 순서(Layout/Tab Order) 이용
출처 : http://www.winapi.co.kr/win32lec/lec8/lec8-2-8.htm

컨트롤과의 통신
대화 상자 안에서 컨트롤을 제어하려면 ID가 필요하기 때문에 다음과 같은 함수가 필요.
 - 컨트롤의 윈도우 핸들 얻기
    HWND GetDlgItem(HWND hWnd, int nIDDlgItem)
    Int GetDlgCtrlID(HWND hWndCtl)
 - (에디트)컨트롤의 문자열 제어
    UINT GetDlgItemText(HWND, int, LPTSTR, int nMaxCount);
    BOOL SetDlgItemText(HWND, int, LPCTSTR);
 - (에디트)컨트롤의 숫자 제어
    UINT GetDlgItemInt(HWND, int, BOOL*, BOOL);
    BOOL SetDlgItemInt(HWND, int, UINT, BOOL);