Я пытаюсь создать в Windows главное меню, нарисованное владельцем. Я понимаю настройку:
menuiteminfo.ftype = MFT_OWNERDRAW
Я также знаю об обработке сообщений WM_MEASUREITEM и WM_DRAWITEM.
Однако как узнать, какой пункт главного меню отправляет сообщение? (чтобы я мог заполнить соответствующий размер поля и текст) itemID, по-видимому, является единственным уникальным идентификатором. Но как я могу связать этот указатель / дескриптор с рассматриваемым элементом? Я могу использовать lParam, чтобы определить, что это пункт меню. Но я не могу определить, какой пункт меню. GetMenuItemID бесполезен, поскольку он возвращает -1 для всех пунктов главного меню.
Или я все делаю неправильно? Я искал ответы несколько недель. На самом деле, все, что я хочу сделать, это изменить цвет текста в главном меню с черного на белый или светло-серый, чтобы я мог использовать темный фон.