Собственные меню и сообщение WM_DRAWITEM
Всякий раз, когда пункт должен быть нарисован (например, когда он первоначально показывается на экране, или когда пользователь выбирает его), система отправляет сообщение
WM_DRAWITEM процедуре окна владельца меню. Это сообщение содержит указатель на структуру DRAWITEMSTRUCT содержащую информацию о пункте, включая данные о пункте, которые прикладная программа, возможно, присвоила ему. Кроме того, DRAWITEMSTRUCT содержит флажки, которые обозначают состояние пункта (такие как, является ли он недоступным или выбранным), а также рабочий прямоугольник и контекст устройства, которые программа использует, чтобы рисовать пункт.Прикладная программа должна сделать следующее при обработке сообщения WM_DRAWITEM:
Если пользователь выбирает пункт меню, система устанавливает член itemAction структуры DRAWITEMSTRUCT в значение ODA_SELECT, а член itemState устанавливает в значение ODS_SELECTED. Это является командой приложения для перерисовки пункта меню, который обозначен, что он выбран.