Код извещения передается через поле code структуры NMHDR . Напомним, что адрес этой структуры находится в параметре lParam сообщения WM_NOTIFY.
Родительское окно может получить следующие коды извещений:
Код извещения | Описание |
LVN_BEGINDRAG | Начало операции переноса "drag and drop" |
LVN_BEGINLABELEDIT | Начало операции редактирования названия элемента |
LVN_BEGINRDRAG | Начало операции переноса "drag and drop" с использованием правой клавиши мыши |
LVN_COLUMNCLICK | Пользователь сделал щелчок мышью по заголовку столбца в режиме детального отчета |
LVN_DELETEALLITEMS | Удаление всех элементов списка |
LVN_DELETEITEM | Удаление определенного элемента списка |
LVN_ENDLABELEDIT | Завершение операции редактирования названия элемента |
LVN_GETDISPINFO | Орган управления запрашивает информацию, необходимую для отображения элемента. Это извещение приходит, в частности, когда при добавлении элемента вместо адреса реальной текстовой строки была указана константа LPSTR_TEXTCALLBACK |
LVN_INSERTITEM | Вставка в список нового элемента |
LVN_ITEMCHANGED | Произошло изменение элемента |
LVN_ITEMCHANGING | С помощью этого извещения родительскому окну предоставляется возможность отменить предполагаемое изменение элемента |
LVN_KEYDOWN | Была нажата клавиша |
LVN_SETDISPINFO | Родительское окно должно обновить информацию об элементах списка, которую оно хранит в своих структурах данных |
Рассмотрим особенности обработки некоторых извещений на примере нашего приложения List Application. Подробную информацию об остальных извещениях вы сможете найти в справочной системе SDK.
Так как при добавлении элементов в поле pszText была записана константа LPSTR_TEXTCALLBACK, для отображения списка орган управления List View "попросит" родительское окно предоставить ему адрес реальной текстовой строки. В результате родительское окно получит извещение с кодом LVN_GETDISPINFO.
Вместе с этим извещением в параметре lParam передается указатель на структуру LV_DISPINFO , которая будет использоваться для передачи информации: