Mensaje _ WM NOTIFY

Enviado por un control común a su ventana primaria cuando se ha producido un evento o el control requiere cierta información.

Parámetros

wParam

Identificador del control común que envía el mensaje. No se garantiza que este identificador sea único. Una aplicación debe usar el miembro hwndFrom o idFrom de la estructura NMHDR (pasado como parámetro lParam) para identificar el control.

lParam

Puntero a una estructura NMHDR que contiene el código de notificación y la información adicional. Para algunos mensajes de notificación, este parámetro apunta a una estructura mayor que tiene la estructura NMHDR como su primer miembro.

Valor devuelto

El valor devuelto se omite, excepto para los mensajes de notificación que especifican lo contrario.

Observaciones

El destino del mensaje debe ser el HWND del elemento primario del control. Este valor se puede obtener mediante GetParent, como se muestra en el ejemplo siguiente, donde m _ controlHwnd es el HWND del propio control.

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

Las aplicaciones controlan el mensaje en el procedimiento de ventana de la ventana primaria, como se muestra en el ejemplo siguiente, que controla el mensaje de notificación enviado por el control personalizado en el ejemplo anterior.

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

Algunas notificaciones, principalmente las que han estado en la API durante mucho tiempo, se envían como mensajes _ WM COMMAND. Para obtener más información, vea Controlar mensajes.

Si el controlador de mensajes está en un procedimiento de cuadro de diálogo, debe usar la función SetWindowLong con MSGRESULT de DWL para _ establecer un valor devuelto.

Para Windows Vista y sistemas posteriores, el mensaje _ WM NOTIFY no se puede enviar entre procesos.

Muchas notificaciones están disponibles en formato ANSI y Unicode. La ventana que envía el mensaje _ WM NOTIFY usa el mensaje _ NOTIFYFORMAT de WM para determinar qué formato se debe usar. Consulte WM _ NOTIFYFORMAT para obtener más información.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Solo [ aplicaciones de escritorio de Vista]
Servidor mínimo compatible
Windows Solo aplicaciones de escritorio de Server 2003 []
Encabezado
Winuser.h

Consulte también

WM _ NOTIFYFORMAT