다음을 통해 공유


WM_NOTIFY 메시지

이벤트가 발생했거나 컨트롤에 일부 정보가 필요한 경우 공용 컨트롤에서 부모 창으로 보냅니다.

매개 변수

wParam

메시지를 보내는 공용 컨트롤의 식별자입니다. 이 식별자는 고유하지 않을 수 있습니다. 애플리케이션은 컨트롤을 식별하기 위해 NMHDR 구조체(lParam 매개 변수로 전달됨)의 hwndFrom 또는 idFrom 멤버를 사용해야 합니다.

lParam

알림 코드 및 추가 정보가 포함된 NMHDR 구조체에 대한 포인터입니다. 일부 알림 메시지의 경우 이 매개 변수는 첫 번째 멤버로 NMHDR 구조체가 있는 더 큰 구조체를 가리킵니다.

반환 값

달리 지정하는 알림 메시지를 제외하고 반환 값은 무시됩니다.

설명

메시지의 대상은 컨트롤 부모의 HWND여야 합니다. 이 값은 다음 예와 같이 GetParent를 사용하여 가져올 수 있습니다. 여기서 m_controlHwnd는 컨트롤 자체의 HWND입니다.

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);

애플리케이션은 이전 예에서 사용자 지정 컨트롤이 보낸 알림 메시지를 처리하는 다음 예와 같이 부모 창의 창 프로시저에서 메시지를 처리합니다.

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_COMMAND 메시지로 전송됩니다. 자세한 내용은 컨트롤 메시지를 참조하세요.

메시지 처리기가 대화 상자 프로시저에 있는 경우 DWL_MSGRESULT와 함께 SetWindowLong 함수를 사용하여 반환 값을 설정해야 합니다.

Windows Vista 이상 시스템의 경우 프로세스 간에 WM_NOTIFY 메시지를 보낼 수 없습니다.

많은 알림이 ANSI 및 유니코드 형식으로 제공됩니다. WM_NOTIFY 메시지를 보내는 창은 WM_NOTIFYFORMAT 메시지를 사용하여 사용할 형식을 결정합니다. 자세한 내용은 WM_NOTIFYFORMAT을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
헤더
Winuser.h

추가 정보

WM_NOTIFYFORMAT