Показ на экране контекстного меню


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

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

Назад в оглавление
На главную страницу

Hosted by uCoz