Príklad v tomto oddiele obsahuje časti kódu z aplikácií, ktoré vytvorí a zobrazí sa kontextová ponuka, ktorá umožní používateľovi nastaviť písma a atribúty písma. Aplikácia zobrazí menu do klientskej oblasti jej hlavné okno vždy, keď používateľ klikne na ľavé tlačidlo myši.
Tu je ponuka šablóny pre kontextovú ponuku, ktorá je uvedená v žiadosti zdrojov definičný súbor.
PopupMenu MENU začať POPUP „figurína Popup"začať POPUP"Písmo"začať MENUITEM"Kuriér"IDM_FONT_COURIER MENUITEM"Times Roman", IDM_FONT_TMSRMN MENUITEM"Švajčiarsko", IDM_FONT_SWISS MENUITEM"Helvetica"IDM_FONT_HELV MENUITEM"Stará anglický"IDM_FONT_OLDENG konca POPUP"Veľkosti"začať MENUITEM"7", IDM_SIZE_7 MENUITEM"8", IDM_SIZE_8 MENUITEM"9", IDM_SIZE_9 MENUITEM"10", IDM_SIZE_10 MENUITEM"11"IDM_SIZE_11 MENUITEM "12", IDM_SIZE_12 MENUITEM "14", IDM_SIZE_14 koniec POPUP "Styles" začať MENUITEM "Tučné" IDM_STYLE_BOLD MENUITEM "Kurzíva", IDM_STYLE_ITALIC MENUITEM "prečiarknuté", IDM_STYLE_SO MENUITEM "Horný" IDM_STYLE_SUPER MENUITEM "Dolný index", IDM_STYLE_SUB koniec koniec koniec
V nasledujúcom príklade dáva okno postup a podporných funkcií, ktoré sa používa na vytváranie a zobraziť kontextovú ponuku.
LRESULT APIENTRY MenuWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {RECT rc; / / pt bod klienta oblasti; / / umiestnenie myši kliknite na položku Prepnúť (uMsg) {prípad WM_LBUTTONDOWN: / / získať ohraničovacieho rámčeka do klientskej oblasti.
GetClientRect (hwnd, amp (LPRECT), rc);
/ / Získať klient súradnice pre kliknutím myši.
PT.x = GET_X_LPARAM(lParam);
PT.y = GET_Y_LPARAM(lParam);
/ / Ak kliknutím myši sa uskutočnilo vo vnútri klienta / / plochu, spustiť funkciu definovanom aplikáciou / / ktorý zobrazuje v kontextovej ponuke.
Ak (PtInRect((LPRECT) & rc, pt)) HandlePopupMenu (hwnd, pt);
prerušiť;
/ Procesu iné okno správy.
predvolené: návrat DefWindowProc (hwnd, uMsg, wParam, lParam);
} Vráti hodnotu NULL;
} VOID APIENTRY HandlePopupMenu(HWND hwnd, POINT pt) {HMENU hmenu; / / ponuku šablónu HMENU hmenuTrackPopup; / / kontextovej ponuke / / načítať šablónu ponuku kontextová ponuka z / / aplikácie zdroje.
hmenu = LoadMenu (hinst, "PopupMenu");
Ak (hmenu == NULL) návratu;
/ / Získať prvý kontextovej ponuke v ponuke šablóne. Je to / / zobrazí ponuka tohto TrackPopupMenu.
hmenuTrackPopup = GetSubMenu (hmenu, 0);
/ / TrackPopup používa obrazovkových súradniciach, takže konverzia / / súradnice myši kliknite na obrazovke súradnice.
ClientToScreen (hwnd (LPPOINT) & pt);
/ / Kreslenie a sledovať v kontextovej ponuke.
TrackPopupMenu (hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
/ / Zničiť menu.
DestroyMenu(hmenu);
}