nesco писал(а):
MenuEx не требует запуска всплывающего окна, которое и перехватывает сообщенияНу, и обычный не должен был требовать.
Уточнить как реализовано в MenuEx.
TrackPopupMenu() требуется окно. Такое окно у нас есть - это Applet или форма, на которой лежит меню. С помощью имеющихся функций KOL добавить свою оконную процедуру для обработки сообщений в Applet.
Отдельное окно, предполагаю, может требоваться в невизуальных приложениях, когда меню отображается в произвольном месте экрана. Тогда в Init() можно определить наличие Applet и использовать либо старый, либо новый метод.
Ага, ещё надо учесть работу, когда все окна программы невидимы, а меню надо отобразить на иконке в трее. Вот для этого могло быть нужно отдельное окно.
В оригинальном компоненте можно попробовать вызывать TrackPopupMenu с флагами TPM_NONOTIFY+TPM_RETURNCMD. Тогда функция будет сама возвращать выбранный пункт без необходимости оконной процедуры.