Przykład w tej sekcji zawiera fragmenty kodu aplikacji, który tworzy i wyświetla menu skrótów, które umożliwia użytkownikowi ustawić atrybutów czcionki i czcionki. Aplikacja wyświetla menu w obszarze klienta swojego głównego okna, gdy użytkownik kliknie lewym przyciskiem myszy.
Tutaj jest szablon menu menu skrótów, które znajduje się w pliku zasobu definicji aplikacji.
PopupMenu MENU rozpocząć POPUP "Manekina Popup" rozpocząć POPUP "Czcionki" rozpocząć MENUITEM "Courier", IDM_FONT_COURIER MENUITEM "Times Roman", IDM_FONT_TMSRMN MENUITEM "Szwajcarski", IDM_FONT_SWISS MENUITEM "Helvetica", IDM_FONT_HELV MENUITEM "Staroangielski", IDM_FONT_OLDENG koniec POPUP "Rozmiary" Rozpocznij 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 "Style" Rozpocznij MENUITEM "Pogrubienie" IDM_STYLE_BOLD MENUITEM "Kursywa", IDM_STYLE_ITALIC MENUITEM "przekreślić", IDM_STYLE_SO MENUITEM "Indeks górny", IDM_STYLE_SUPER MENUITEM "Indeks dolny", IDM_STYLE_SUB koniec koniec koniec
Poniższy przykład przedstawia procedurę okna i wspieranie funkcje używane do tworzenia i wyświetlania menu skrótów.
LRESULT APIENTRY MenuWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {RECT rc; / / pt punkt obszaru klienta; / / Lokalizacja myszy kliknij przycisk przełącznika (uMsg) {Sprawa WM_LBUTTONDOWN: / / Get prostokąta obwiedni obszaru klienckiego.
GetClientRect (hwnd, i (LPRECT), rc);
/ / Get klienta współrzędnych na kliknięcie myszą.
pt.x = GET_X_LPARAM(lParam);
pt.y = GET_Y_LPARAM(lParam);
/ / Jeżeli kliknięcie myszą miejsce wewnątrz klienta / / obszar, wykonywanie funkcji zdefiniowanych przez aplikację / /, wyświetla menu skrótów.
Jeżeli (PtInRect((LPRECT) & rc, pt)) HandlePopupMenu (hwnd, pt);
podział;
/ / Procesu inne komunikaty okna.
Domyślnie: Powrót DefWindowProc (hwnd, uMsg, wParam, fikcyjnymi);
} zwrócą NULL;
} VOID APIENTRY HandlePopupMenu(HWND hwnd, POINT pt) {HMENU hmenu; / / menu Szablon HMENU hmenuTrackPopup; / / menu skrótów / / załadować szablon menu zawierającego menu skrótów z / / zasoby aplikacji.
HMENU = LoadMenu (hinst, "PopupMenu");
Jeżeli (hmenu == NULL) powrotu;
/ / Get z pierwszego menu skrótów w menu szablon. Jest to / / menu wyświetla tego TrackPopupMenu.
hmenuTrackPopup = GetSubMenu (hmenu, 0);
/ / TrackPopup używa współrzędne ekranu, aby przekonwertować / / współrzędnych myszy kliknij, aby współrzędnymi ekranowymi.
ClientToScreen (hwnd, (LPPOINT) & pt);
/ / Draw i śledzenia w menu skrótów.
TrackPopupMenu (hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL);
/ / Zniszczyć menu.
DestroyMenu(hmenu);
}