Win32 API. Меню
Страница 17. Отображение на экране контекстного меню


Отображение на экране контекстного меню

Функция, приведенная в следующем примере, показывает на экране контекстное меню.

Прикладная программа включает в себя ресурс меню, идентифицированный строкой "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);
}

 
« Предыдущая статья   Следующая статья »