Manejo de notificaciones de ventanas en el control de usuario derivado de C #

¿Cómo puedo manejar cualquiera de las notificaciones de vista de árbol enumeradas?aquí en una clase de C # que se deriva del control .NET TreeView?

Intenté manejar la notificación de clic, por ejemplo, como esto:

class ExtendedTreeView : TreeView
{
    private const Int32 NM_FIRST = (Int32)(0U - 0U);
    private const Int32 NM_CLICK = unchecked((Int32)((UInt32)NM_FIRST - 2U));

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == NM_CLICK)
        {
            MessageBox.Show("NM_CLICK");
        }
        base.WndProc(ref m);
    }
}

Pero el cuadro de mensaje nunca se muestra. Esta es la primera vez que trato de usar la API de Win32 para modificar el comportamiento de un control .NET, así que no tengo idea de qué está mal.

¿Es este el enfoque correcto para manejar estas notificaciones?

Para su información: Sé que el control .NET TreeView tiene un evento de clic. Esto es sólo una primera prueba. Más tarde quiero habilitar elTVS_EX_MULTISELECT estilo. Dado que el control .NET TreeView no dispara ningúnAfterSelect eventos cuandoTVS_EX_MULTISELECT está habilitado, quiero investigar el comportamiento delTVN_SELCHANGED yTVN_ITEMCHANGED Notificaciones más tarde.

Respuestas a la pregunta(3)

Su respuesta a la pregunta