Creazione di un Menu di scelta rapida gli attributi dei Font

L'esempio in questa sezione contiene porzioni di codice da un'applicazione che crea e viene visualizzato un menu di scelta rapida che consente all'utente di impostare i tipi di carattere e gli attributi dei font. L'applicazione Visualizza il menu nell'area client della finestra principale, ogni volta che l'utente fa clic sul pulsante sinistro del mouse.

Qui il modello di menu per il menu di scelta rapida che viene fornito in file di definizione delle risorse dell'applicazione.

PopupMenu MENU iniziare POPUP "Dummy Popup" iniziare POPUP "Fonts" iniziare MENUITEM "Corriere", IDM_FONT_COURIER MENUITEM "Times Roman", IDM_FONT_TMSRMN MENUITEM "Swiss", IDM_FONT_SWISS MENUITEM "Helvetica", IDM_FONT_HELV MENUITEM "Old English", IDM_FONT_OLDENG fine POPUP "Dimensioni" iniziare 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 fine POPUP "Stili" iniziare MENUITEM "grassetto", l'IDM_STYLE_BOLD MENUITEM "Italic", IDM_STYLE_ITALIC MENUITEM "sciopero", IDM_STYLE_SO MENUITEM "Apice", IDM_STYLE_SUPER MENUITEM "Pedice", IDM_STYLE_SUB fine fine fine 
 

Nell'esempio seguente d la routine della finestra e sostenere le funzioni usate per creare e visualizzare il menu di scelta rapida.

 LRESULT APIENTRY MenuWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {RECT rc;    / / cliente zona punto pt;   / / posizione del mouse click interruttore (uMsg) {caso WM_LBUTTONDOWN: / / ottiene il rettangolo di delimitazione dell'area client. 
 
            GetClientRect (hwnd, amp (LPRECT); rc); 
 
            / / Get client coordinate per il click del mouse.  
 
            PT.x = GET_X_LPARAM(lParam); 
            PT.y = GET_Y_LPARAM(lParam); 
 
            / / Se il click del mouse si  svolta all'interno del client / / zona, eseguire la funzione definita dall'applicazione / / che visualizza il menu di scelta rapida. 
 
            Se (PtInRect((LPRECT) & rc, pt)) HandlePopupMenu (hwnd, pt); 
            pausa; 
        / / Processo altri messaggi di finestra.  
 
        impostazione predefinita: restituire DefWindowProc (hwnd, uMsg, wParam, lParam); 
    } return NULL; 
} HandlePopupMenu(HWND hwnd, POINT pt) APIENTRY VOID {HMENU hmenu;            / / modello dal menu HMENU hmenuTrackPopup;  / / menu di scelta rapida / / carica il modello di menu contenenti dal menu di scelta rapida il / / risorse dell'applicazione. 
 
    HMENU = LoadMenu (hinst, "PopupMenu"); 
    Se (hmenu = = NULL) return; 
 
    / / Get primo menu di scelta rapida nel modello dal menu. Questo  il / / menu Visualizza quel TrackPopupMenu. 
 
    hmenuTrackPopup = GetSubMenu (hmenu, 0); 
 
    / / TrackPopup utilizza le coordinate dello schermo, cos convertire il / / le coordinate del mouse click per le coordinate dello schermo. 
 
    ClientToScreen (hwnd, (LPPOINT) & pt); 
 
    / / Disegnare e tenere traccia di menu di scelta rapida.  
 
    TrackPopupMenu (hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL); 
 
    / / Distruggere il menu. 
 
    DestroyMenu(hmenu); 
} 
 

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index