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.