Показ на экране контекстного меню
Функция, приведенная в следующем примере, показывает на экране контекстное меню.
Прикладная программа включает в себя ресурс меню, идентифицированный строкой "ShortcutExample". Строка меню просто содержит название меню. Прикладная программа использует функцию
TrackPopupMenu, чтобы показать на экране меню, связанное с этим пунктом меню. (Сама строка меню не отображается, потому что TrackPopupMenu требует дескриптора меню, подменю или контекстного меню.)VOID APIENTRY DisplayContextMenu(HWND hwnd, POINT pt)
{
HMENU hmenu; // меню верхнего уровня
HMENU hmenuTrackPopup; // контекстное меню
// Загрузим ресурс меню.
if ((hmenu = LoadMenu(hinst, "ShortcutExample")) == NULL)
return;
// Функция TrackPopupMenu не может показать на экране строку
// меню, так как должна получить дескриптор первого
// контекстного меню.
hmenuTrackPopup = GetSubMenu(hmenu, 0);
// Показываем на экране контекстное меню. Устанавливаем позицию
// правой кнопки мыши.
TrackPopupMenu(hmenuTrackPopup,
TPM_LEFTALIGN | TPM_RIGHTBUTTON,
pt.x, pt.y, 0, hwnd, NULL);
// Разрушаем меню.
DestroyMenu(hmenu);
}
|