Graphisoft®

Dialog ManagerVersion: 2.0

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 logo Windows 전용:
DG_CLOSEBOX 다이얼로그가 닫힘 박스에 의해 닫혔습니다.

설명

DGModalDialog는 Modal 다이얼로그가 사용자에 의해, 혹은 프로그램 코드에 의해 닫혔을 경우에만 리턴합니다.

애플리케이션은 다이얼로그 콜백 함수에서 DG_MSG_INIT 메시지를 처리할 때 다이얼로그 ID를 저장하고 고정 리소스 ID 대신 DG 함수의 다음 호출에 이 값을 사용해야 합니다. 기본적으로 이것이 필수인 3가지 상황이 있습니다:

이러한 경우 DG는 리소스 충돌을 해결하기 위해 2번째 및 후속 DGModalDialog 호출에서 새로운 (negative) 유일 다이얼로그 ID를 생성합니다. 애플리케이션이 하나의 모듈로 구성되고 모든 다이얼로그가 한 번만 열리더라도 이 방법에 익숙해지는 것이 가장 좋습니다.

userData 파라미터에 의해 부여된 사용자 데이터 블록은 모든 DG 메시지와 함께 다이얼로그 콜백 함수로 전달됩니다. 애플리케이션은 다이얼로그 지정 정보를 이 데이터 블록에 저장하고 그것에 대한 포인터를 DGUserData로 캐스팅할 수 있습니다.

DGModalDialog는 Modal 다이얼로그가 닫히는 경우에만 리턴합니다. 사용자는 보통 OK 또는 Cancel 버튼을 클릭하여 Modal 다이얼로그를 닫습니다. 다이얼로그 콜백 함수는 DG_OK 또는 DG_CANCELitem 파라미터로 하는 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_ABORTitem 파라미터로 가진 DG_MSG_CLOSE 메시지를 수신하고 DGModalDialogDG_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, 콜백 함수