У меня есть сценарий, где контекстное меню должно оставаться открытым. Я использовал хук WH_MSGFILTER для получения сообщений контекстного меню. Когда пользователь нажимает на элемент контекстного меню, открывается диалоговое окно для выбора цвета:
case WM_LBUTTONUP:
{
if (colorSelected)
{
//pMSG->message = WM_NULL; doesn't prevent context menu from closing when a dialog box is opened below
currentColor = chooseColor(selectedMenuItemPos); //call ChooseColor winapi
}
break;
}
Здесь - пример того, как запретить закрытие контекстного меню, когда пользователь нажимает на пункт контекстного меню. Как вы можете видеть из приведенного выше кода, я также попробовал этот метод, но он не работает, когда открывается диалоговое окно. Можно ли при таком сценарии держать открытым контекстное меню? Здесь - аналогичный вопрос, но его можно решить, используя метод, описанный выше. Меня не интересует другое решение, например, фальшивое окно меню. Мне просто любопытно, технически возможно ли это в winapi.