다음을 통해 공유


IPrintDialogCallback::HandleMessage 메서드(commdlg.h)

PrintDlgEx에서 호출되어 애플리케이션이 인쇄 속성 시트일반 페이지 아래쪽에 있는 자식 대화 상자로 전송된 메시지를 처리할 수 있는 기회를 제공합니다. 자식 대화 상자에는 인쇄 대화 상자와 유사한 컨트롤이 포함되어 있습니다.

구문

HRESULT HandleMessage(
  HWND    hDlg,
  UINT    uMsg,
  WPARAM  wParam,
  LPARAM  lParam,
  LRESULT *pResult
);

매개 변수

hDlg

형식: HWND

일반 페이지의 아래쪽 부분에 있는 자식 대화 상자에 대한 핸들입니다.

uMsg

형식: UINT

수신되는 메시지의 식별자입니다.

wParam

형식: WPARAM

메시지에 대한 추가 정보입니다. 정확한 의미는 uMsg 매개 변수의 값에 따라 달라집니다.

lParam

형식: LPARAM

메시지에 대한 추가 정보입니다. 정확한 의미는 uMsg 매개 변수의 값에 따라 달라집니다.

uMsg 매개 변수가 WM_INITDIALOG 메시지를 나타내는 경우 lParam은 속성 시트를 만들 때 지정된 값을 포함하는 PRINTDLGEX 구조체에 대한 포인터입니다.

pResult

형식: LRESULT*

메시지에 대한 대화 상자 프로시저에서 반환할 결과를 나타냅니다. 메시지를 처리하는 경우 가 가리키는 값은 TRUE 여야 합니다. 그렇지 않으면 FALSE 이거나 메시지 유형에 따라 적절한 값이어야 합니다.

반환 값

형식: HRESULT

IPrintDialogCallback::HandleMessage 구현에서 메시지를 처리한 경우 S_OK 반환합니다. 이 경우 PrintDlgEx 함수는 기본 메시지 처리를 수행하지 않습니다.

PrintDlgEx에서 기본 메시지 처리를 수행하려면 S_FALSE 반환합니다.

설명

WM_NOTIFY 메시지로 전달되는 알림 메시지의 경우 setWindowLong 함수를 DWL_MSGRESULT 값과 함께 사용하여 반환 값을 설정해야 합니다. SetWindowLong을 호출할 때 GetParent(hDlg)를 사용하여 자식 창의 부모인 일반 페이지의 DWL_MSGRESULT 값을 설정합니다.

일반 페이지의 아래쪽 부분에 있는 자식 창에 대한 기본 대화 상자 프로시저는 WM_INITDIALOG 메시지를 처리한 후 HandleMessage 메서드에 전달합니다. 자식 창으로 전송된 다른 모든 메시지의 경우 HandleMessage 가 먼저 메시지를 받습니다. 그런 다음 HandleMessage 반환 값은 기본 대화 프로시저가 메시지를 처리할지 아니면 무시할지를 결정합니다.

HandleMessage가WM_CTLCOLORDLG 메시지를 처리하는 경우 대화 상자의 배경을 그리는 유효한 브러시 핸들을 반환해야 합니다. 일반적으로 HandleMessageWM_CTLCOLOR* 메시지를 처리하는 경우 지정된 컨트롤의 배경을 그리는 유효한 브러시 핸들을 반환해야 합니다.

HandleMessage 메서드에서 EndDialog 함수를 호출하지 마세요. 대신 HandleMessagePostMessage 함수를 호출하여 IDABORT 값이 있는 WM_COMMAND 메시지를 대화 상자 프로시저에 게시할 수 있습니다. IDABORT를 게시하면 Print 속성 시트가 닫히고 PrintDlgExPRINTDLGEX 구조체의 dwResultAction 멤버에 PD_RESULT_CANCEL 반환합니다. HandleMessage가 대화 상자를 닫은 이유를 알아야 하는 경우 HandleMessage 메서드와 애플리케이션 간에 고유한 통신 메커니즘을 제공해야 합니다.

일반 페이지의 아래쪽 부분에서 자식 대화 상자의 표준 컨트롤을 서브클래스할 수 있습니다. 이러한 표준 컨트롤은 인쇄 대화 상자에 있는 컨트롤과 유사합니다. 그러나 기본 대화 상자 프로시저는 컨트롤을 서브클래스할 수도 있습니다. 이 때문에 HandleMessageWM_INITDIALOG 메시지를 처리할 때 컨트롤을 서브클래스해야 합니다. 이렇게 하면 하위 클래스 프로시저가 대화 상자 프로시저에 의해 설정된 하위 클래스 프로시저 전에 컨트롤 관련 메시지를 받습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 commdlg.h(Windows.h 포함)
DLL Comdlg32.dll

추가 정보

일반 대화 상자 라이브러리

개념

EndDialog

IPrintDialogCallback

기타 리소스

PRINTDLGEX

PostMessage

PrintDlgEx

참조

SetWindowLong

WM_COMMAND

WM_CTLCOLORDLG

WM_INITDIALOG

WM_NOTIFY