Как изменить порядок работы ContextMenu в VC? - PullRequest
0 голосов
/ 04 марта 2012

Я пытаюсь добавить контекстное меню, если щелкнуть правой кнопкой мыши файл в проводнике.

IFACEMETHODIMP FContextMenuExt::QueryContextMenu(
HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{
    ...
    InsertMenuItem(hMenu, 0, TRUE, &mii);
    ...
}

Меню было добавлено, но не помещало меню сверху. Кажется, на 5 или 6 месте.

Может кто-нибудь дать мне совет?

1 Ответ

1 голос
/ 04 марта 2012

Вы не должны указывать позицию для своих пунктов контекстного меню.Оболочка создает контекстное меню с элементами / командами, которые она получает из нескольких источников: своих собственных элементов графического интерфейса, обработчиков контекстного меню, команд реестра и т. Д. Обработчику контекстного меню предлагается добавить свои команды в создаваемое меню, а владелец меню продолжает добавлять элементы.в том числе в верхней части меню.

Вы могли бы установить перехват для всплывающего меню и обновлять его до того, как оно будет показано пользователю, и после того, как оно будет полностью построено, но опять же - это не то, что вы действительно должны делать.

...