CreŰren van een snelmenu lettertypekenmerken

In het voorbeeld in deze sectie bevat delen van code vanuit een toepassing die wordt gemaakt en wordt een snelmenu waarmee de gebruiker instellen van lettertypen en lettertypekenmerken weergegeven. De toepassing weergeven het menu in het clientgebied van het belangrijkste venster wanneer de gebruiker klikt op de linker mouse button.

Hier is de menusjabloon voor het snelmenu die wordt geleverd in resource-definitie bestand van de toepassing.

PopupMenu MENU beginnen POPUP "Dummy Popup" beginnen POPUP "Lettertypen" beginnen MENUITEM "Courier", IDM_FONT_COURIER MENUITEM "Times Roman", IDM_FONT_TMSRMN MENUITEM "Swiss", IDM_FONT_SWISS MENUITEM "Helvetica", IDM_FONT_HELV MENUITEM "Oude Engels", IDM_FONT_OLDENG einde POPUP "Maten" beginnen 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 einde POPUP "Stijlen" beginnen MENUITEM "vet", IDM_STYLE_BOLD MENUITEM "Cursief", IDM_STYLE_ITALIC MENUITEM "Doorhalen", IDM_STYLE_SO MENUITEM "Superscript", IDM_STYLE_SUPER MENUITEM "Subscript", IDM_STYLE_SUB einde einde einde 
 

In het volgende voorbeeld geeft de procedure venster en ondersteunende functies die worden gebruikt om te maken en het snelmenu weergeven.

 LRESULT APIENTRY MenuWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {RECT rc;    / / client gebied punt pt;   / / locatie van muis klik schakelaar (uMsg) {geval WM_LBUTTONDOWN: / / Get de rechthoek van het clientgebied. 
 
            GetClientRect (hwnd, (LPRECT) amp; rc); 
 
            / / Get de client co÷rdinaten voor de muisklik.  
 
            PT.x = GET_X_LPARAM(lParam); 
            PT.y = GET_Y_LPARAM(lParam); 
 
            / / Als de muisklik plaatsvond binnen de client / / gebied, de toepassing gedefinieerde functie uitvoeren / / waarin het snelmenu wordt weergegeven. 
 
            Als (PtInRect((LPRECT) & rc, pt)) HandlePopupMenu (hwnd, pt); 
            breken; 
        / / Andere venster berichten verwerken.  
 
        standaard: terugkeer van de DefWindowProc (hwnd, uMsg, wParam, lParam); 
    } return NULL; 
} VOID APIENTRY HandlePopupMenu(HWND hwnd, POINT pt) {HMENU hmenu;            / / menu sjabloon HMENU hmenuTrackPopup;  / / snelmenu / / laden de menusjabloon met het snelmenu van de / / de toepassingsbronnen. 
 
    hmenu = LoadMenu (hinst, "PopupMenu"); 
    Als (hmenu == NULL) return; 
 
    / / Get het eerste snelmenu in het menusjabloon. Dit is de / / menu dat TrackPopupMenu wordt weergegeven. 
 
    hmenuTrackPopup = GetSubMenu (hmenu, 0); 
 
    / / TrackPopup gebruikt schermco÷rdinaten, dus converteren de / / co÷rdinaten van de muis klik te schermco÷rdinaten. 
 
    ClientToScreen (hwnd, (LPPOINT) & pt); 
 
    / / Tekenen en bijhouden van het snelmenu.  
 
    TrackPopupMenu (hmenuTrackPopup, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hwnd, NULL); 
 
    / / Het menu vernietigen. 
 
    DestroyMenu(hmenu); 
} 
 

Index