Tworzenie Menu skrótów atrybutów czcionki

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); 
} 

 

Index