WM_NOTIFY
сообщения отправляются не элементу управления (просмотр списка), а, скорее, родительскому элементу (форма). Это имело смысл в мире Win32, потому что эти сообщения очень полезны для перехвата, но подкласс управления был умеренно болезненным, особенно когда вы хотели различного поведения в каждом случае. С .NET это больше не так.
Удобно, что стандартная обработка сообщений .NET «отражает» сообщение обратно в элемент управления, так что вы можете перехватить сообщение и обработать его в WndProc элемента управления, но отраженное сообщение больше не WM_NOTIFY
(0x004E) , а точнее WM_REFLECT
| WM_NOTIFY
(0x204E).
Так что, если вы измените свой WndProc для поиска этого значения, то оно должно работать.