WM _ 알림 메시지WM_NOTIFY message

이벤트가 발생 하거나 컨트롤이 일부 정보를 요구 하는 경우 공용 컨트롤에서 부모 창에 보냅니다.Sent by a common control to its parent window when an event has occurred or the control requires some information.

매개 변수Parameters

wParamwParam

메시지를 보내는 공용 컨트롤의 식별자입니다.The identifier of the common control sending the message. 이 식별자는 고유 하지 않을 수 있습니다.This identifier is not guaranteed to be unique. 응용 프로그램은 컨트롤을 식별 하기 위해 NMHDR 구조체 ( lParam 매개 변수로 전달 됨)의 hwndFrom 또는 idfrom 멤버를 사용 해야 합니다.An application should use the hwndFrom or idFrom member of the NMHDR structure (passed as the lParam parameter) to identify the control.

lParamlParam

알림 코드 및 추가 정보를 포함 하는 NMHDR 구조체에 대 한 포인터입니다.A pointer to an NMHDR structure that contains the notification code and additional information. 일부 알림 메시지의 경우이 매개 변수는 NMHDR 구조가 첫 번째 멤버인 더 큰 구조를 가리킵니다.For some notification messages, this parameter points to a larger structure that has the NMHDR structure as its first member.

반환 값Return value

반환 값은 달리 지정 된 알림 메시지를 제외 하 고는 무시 됩니다.The return value is ignored except for notification messages that specify otherwise.

설명Remarks

메시지의 대상은 컨트롤 부모의 HWND 여야 합니다.The destination of the message must be the HWND of the parent of the control. 다음 예제와 같이 Getparent를 사용 하 여이 값을 가져올 수 있습니다. 여기서 m _ controlhwnd 는 컨트롤 자체의 HWND 입니다.This value can be obtained by using GetParent, as shown in the following example, where m_controlHwnd is the HWND of the control itself.

NMHDR nmh;
nmh.code = CUSTOM_SELCHANGE;    // Message type defined by control.
nmh.idFrom = GetDlgCtrlID(m_controlHwnd);
nmh.hwndFrom = m_controlHwnd;
SendMessage(GetParent(m_controlHwnd), 
    WM_NOTIFY, 
    nmh.idFrom, 
    (LPARAM)&nmh);

응용 프로그램은 다음 예제와 같이 부모 창의 창 프로시저에서 메시지를 처리 합니다 .이 예제는 이전 예제에서 사용자 지정 컨트롤에서 보낸 알림 메시지를 처리 합니다.Applications handle the message in the window procedure of the parent window, as shown in the following example, which handles the notification message sent by the custom control in the previous example.

INT_PTR CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_NOTIFY:
        switch (((LPNMHDR)lParam)->code)
        {
        case CUSTOM_SELCHANGE:
            if (((LPNMHDR)lParam)->idFrom == IDC_CUSTOMLISTBOX1)
            {
                ...   // Respond to message.
                return TRUE;
            }
            break; 
        ... // More cases on WM_NOTIFY switch.
        break;
        }
    ...  // More cases on message switch.
    }
    return FALSE;
}

오랜 시간 동안 API에 포함 된 알림을 주로는 WM _ 명령 메시지로 전송 됩니다.Some notifications, chiefly those that have been in the API for a long time, are sent as WM_COMMAND messages. 자세한 내용은 제어 메시지를 참조 하세요.For more information, see Control Messages.

메시지 처리기가 대화 상자 프로시저에 있는 경우 DWL msgresult와 함께 Setwindowlong 함수를 사용 _ 하 여 반환 값을 설정 해야 합니다.If the message handler is in a dialog box procedure, you must use the SetWindowLong function with DWL_MSGRESULT to set a return value.

Windows Vista 및 이후 시스템의 경우 프로세스 간에 WM _ 알림 메시지를 보낼 수 없습니다.For Windows Vista and later systems, the WM_NOTIFY message cannot be sent between processes.

많은 알림은 ANSI 및 유니코드 형식으로 사용할 수 있습니다.Many notifications are available in both ANSI and Unicode formats. Wm _ 알림 메시지를 보내는 창에서는 wm _ NOTIFYFORMAT 메시지를 사용 하 여 사용할 형식을 결정 합니다.The window sending the WM_NOTIFY message uses the WM_NOTIFYFORMAT message to determine which format should be used. 자세한 토론은 WM _ NOTIFYFORMAT 를 참조 하세요.See WM_NOTIFYFORMAT for further discussion.

요구 사항Requirements

요구 사항Requirement Value
지원되는 최소 클라이언트Minimum supported client
Windows Vista [ 데스크톱 앱에만 해당]Windows Vista [desktop apps only]
지원되는 최소 서버Minimum supported server
Windows Server 2003 [ 데스크톱 앱에만 해당]Windows Server 2003 [desktop apps only]
헤더Header
Winuser.h
Winuser.h

참고 항목See also

WM _ NOTIFYFORMATWM_NOTIFYFORMAT