Mensagem de notificação do WM _

Enviado por um controle comum para sua janela pai quando um evento ocorreu ou o controle requer algumas informações.

Parâmetros

wParam

O identificador do controle comum que envia a mensagem. Não há garantia de que esse identificador seja exclusivo. Um aplicativo deve usar o membro hwndFrom ou IdFrom da estrutura NMHDR (passada como o parâmetro lParam ) para identificar o controle.

lParam

Um ponteiro para uma estrutura NMHDR que contém o código de notificação e informações adicionais. Para algumas mensagens de notificação, esse parâmetro aponta para uma estrutura maior que tem a estrutura NMHDR como seu primeiro membro.

Retornar valor

O valor de retorno é ignorado, exceto pelas mensagens de notificação que especificam o contrário.

Comentários

O destino da mensagem deve ser o HWND do pai do controle. Esse valor pode ser obtido usando GetParent, conforme mostrado no exemplo a seguir, em que m _ controlHwnd é o HWND do próprio controle.

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

Os aplicativos manipulam a mensagem no procedimento de janela da janela pai, conforme mostrado no exemplo a seguir, que manipula a mensagem de notificação enviada pelo controle personalizado no exemplo 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;
}

Algumas notificações, principalmente as que estiveram na API há muito tempo, são enviadas como mensagens de comando do WM _ . Para obter mais informações, consulte Control messages.

Se o manipulador de mensagens estiver em um procedimento de caixa de diálogo, você deverá usar a função SetWindowLong com DWL _ MSGRESULT para definir um valor de retorno.

Para sistemas Windows Vista e posteriores, a mensagem de _ notificação do WM não pode ser enviada entre processos.

Muitas notificações estão disponíveis nos formatos ANSI e Unicode. A janela que envia a mensagem de _ notificação do WM usa a mensagem do WM _ NOTIFYFORMAT para determinar qual formato deve ser usado. Consulte o WM _ NOTIFYFORMAT para mais discussões.

Requisitos

Requisito Valor
Cliente mínimo com suporte
[Somente aplicativos da área de trabalho do Windows Vista]
Servidor mínimo com suporte
[Somente aplicativos da área de trabalho do Windows Server 2003]
parâmetro
WinUser. h

Confira também

NOTIFYFORMAT do WM _