Manipulando notificações do Windows no controle de usuário derivado do C #

Como posso lidar com qualquer uma das notificações de exibição em árvore listadas?Aqui em uma classe c # que é derivada do controle TreeView .NET?

Eu tentei lidar com a notificação de cliques, por exemplo, assim:

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

Mas a caixa de mensagem nunca é mostrada. Esta é a primeira vez que eu tento usar a API do Win32 para modificar o comportamento de um controle .NET, então não tenho idéia do que está errado.

Essa é a abordagem correta para lidar com essas notificações?

FYI: Eu sei que o controle TreeView do .NET tem um evento click. Este é apenas um primeiro teste. Mais tarde, quero ativar oTVS_EX_MULTISELECT estilo. Como o controle TreeView do .NET não dispara nenhumAfterSelect eventos quandoTVS_EX_MULTISELECT está habilitado, eu quero investigar o comportamento doTVN_SELCHANGED eTVN_ITEMCHANGED notificações mais tarde.

questionAnswers(3)

yourAnswerToTheQuestion