How to: Display a Shortcut Menu from an Existing Resource
Code Example
The following code example demonstrates how to display a shortcut menu based on an existing resource.
Note To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
// Global for handle to menu resource.
HMENU g_hMainMenu;
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
...
// Load the menu resource to use later.
g_hMainMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDM_MENU));
...
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch (message)
{
...
case WM_LBUTTONDOWN:
{
SHRGINFO shrg;
HMENU hmenu;
shrg.cbSize = sizeof(shrg);
shrg.hwndClient = hWnd;
shrg.ptDown.x = LOWORD(lParam);
shrg.ptDown.y = HIWORD(lParam);
shrg.dwFlags = SHRG_RETURNCMD ;
if (SHRecognizeGesture(&shrg) == GN_CONTEXTMENU)
{
hmenu = GetSubMenu(g_hMainMenu, 0);
TrackPopupMenuEx(hmenu, TPM_LEFTALIGN, LOWORD(lParam),
HIWORD(lParam), hWnd, NULL);
}
break;
}
}
return 0;
}
See Also
Menus | How to: Extend Shortcut Menus | How to: Register a File System Shortcut Menu | Shortcut Menu Overview
Send Feedback on this topic to the authors