Obsługa powiadomień systemu Windows w kontrolce użytkownika pochodnej C #
Jak mogę obsłużyć dowolne z wymienionych powiadomień widoku drzewatutaj w klasie C # pochodzącej z formantu .NET TreeView?
Próbowałem obsłużyć powiadomienie o kliknięciu, na przykład w ten sposób:
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);
}
}
Ale okno wiadomości nigdy nie jest pokazane. Po raz pierwszy próbuję użyć Win32 API do zmodyfikowania zachowania kontrolki .NET, więc nie mam pojęcia, co się dzieje.
Czy to właściwe podejście do obsługi tych powiadomień?
FYI: Wiem, że kontrolka .NET TreeView ma zdarzenie click. To tylko pierwszy test. Później chcę włączyćTVS_EX_MULTISELECT
styl. Ponieważ formant .NET TreeView nie uruchamia żadnegoAfterSelect
wydarzenia kiedyTVS_EX_MULTISELECT
jest włączony, chcę zbadać zachowanieTVN_SELCHANGED
iTVN_ITEMCHANGED
powiadomienia później.