DGModalDialog
Modal 다이얼로그를 표시합니다.
short DGModalDialog ( short resId, const DGDialCallBack dCallBack, DGUserData userData );
파라미터
- resId
- 다이얼로그의 GDLG 리소스 식별자이거나, 프로그램 코드로 Modal 다이얼로그를 생성하고 싶을 경우 0입니다.
- dCallBack
- 다음 선언을 가진 다이얼로그 콜백 프로시저에 대한 상수 포인터입니다:
- typedef short (*DGDialCallBack) (
short message,
short dialId,
short itemId,
DGUserData userData,
DGMessageData msgData
); - userData
- 다이얼로그의 사용자 지정 데이터입니다.
리턴 값
-
값 의미 0 함수 파라미터들이 올바르지 않거나 다이얼로그를 생성할 수 없습니다. 양수 다이얼로그 콜백 함수에 의해 양수가 리턴되었습니다. 이것은 보통 클릭한 버튼의 1-기반 다이얼로그 항목 인덱스입니다. DG_ABORT Modal 다이얼로그가 DGAbortModalDialog에 의해 중단되었습니다. Windows 전용:
DG_CLOSEBOX 다이얼로그가 닫힘 박스에 의해 닫혔습니다.
설명
DGModalDialog는 Modal 다이얼로그가 사용자에 의해, 혹은 프로그램 코드에 의해 닫혔을 경우에만 리턴합니다.
애플리케이션은 다이얼로그 콜백 함수에서 DG_MSG_INIT 메시지를 처리할 때 다이얼로그 ID를 저장하고 고정 리소스 ID 대신 DG 함수의 다음 호출에 이 값을 사용해야 합니다. 기본적으로 이것이 필수인 3가지 상황이 있습니다:
- 당신은 프로그램 코드로 새로운 다이얼로그를 생성하기 위해 제로(0) 값인 resId 파라미터로 DGModalDialog를 호출하였습니다.
- 당신은 더 많은 다이얼로그 인스턴스들을 생성하고 싶어합니다. (동일 리소스 기반)
- 당신은 동일한 리소스 ID를 가진 다른 모듈에서 정의된 동일한 타입의 다이얼로그를 더 열고 싶어합니다.
이러한 경우 DG는 리소스 충돌을 해결하기 위해 2번째 및 후속 DGModalDialog 호출에서 새로운 (negative) 유일 다이얼로그 ID를 생성합니다. 애플리케이션이 하나의 모듈로 구성되고 모든 다이얼로그가 한 번만 열리더라도 이 방법에 익숙해지는 것이 가장 좋습니다.
userData 파라미터에 의해 부여된 사용자 데이터 블록은 모든 DG 메시지와 함께 다이얼로그 콜백 함수로 전달됩니다. 애플리케이션은 다이얼로그 지정 정보를 이 데이터 블록에 저장하고 그것에 대한 포인터를 DGUserData로 캐스팅할 수 있습니다.
DGModalDialog는 Modal 다이얼로그가 닫히는 경우에만 리턴합니다. 사용자는 보통 OK 또는 Cancel 버튼을 클릭하여 Modal 다이얼로그를 닫습니다. 다이얼로그 콜백 함수는 DG_OK 또는 DG_CANCEL을 item 파라미터로 하는 DG_MSG_CLICK 메시지를 수신합니다. Windows에서 사용자가 캡션에서 닫힘 상자를 클릭하면 item 파라미터는 DG_CANCEL(또는 다이얼로그에 Cancel 버튼이 없는 경우 DG_OK)입니다. 다이얼로그는 콜백 함수가 DG_MSG_CLICK 메시지에 대해 0이 아닌 값(일반적으로 DG_OK 또는 DG_CANCEL)을 리턴하는 경우에만 실제로 닫힙니다. 애플리케이션은 이 리턴 값을 사용하여 Modal 다이얼로그가 작업을 성공적으로 완료했는지 또는 사용자가 취소했는지 여부를 결정할 수 있습니다.
또한 Modal 다이얼로그는 DGAbortModalDialog 함수를 호출하거나, 다이얼로그 콜백 함수에서 DG_MSG_NULL 메시지에 대한 0이 아닌 값을 리턴하여 프로그램 코드에서 종료할 수 있습니다. 만약 DGAbortModalDialog가 호출되면 콜백 함수는 DG_ABORT를 item 파라미터로 가진 DG_MSG_CLOSE 메시지를 수신하고 DGModalDialog는 DG_ABORT를 리턴합니다.
만약 resId 파라미터가 0인 경우, 성장하지 않는 빈 다이얼로그가 생성됩니다. 다이얼로그 콜백 함수에서 DG_MSG_INIT 메시지를 처리할 때, 이 다이얼로그를 원하는 치수로 리사이즈하고 타이틀을 설정한 다음 DGAppendDialogItem 함수를 사용하여 다이얼로그 항목으로 채울 수 있습니다.
요구사항
- 버전: DG 1.0.0 또는 이후
- 헤더: DG.h
- 라이브러리 가져오기: DG.lib [WIN]
- 모듈: DGLib [MAC], DG.dll [WIN]
참고사항
DG 함수, Modal 다이얼로그. DGAbortModalDialog
DGAppendDialogItem, DGBlankModalDialog, DG_MSG_CLICK, DG_MSG_INIT, DG_MSG_NULL, 콜백 함수