Add Window call back function like this:
case WM_CONTEXTMENU:
{
POINT pt = {LOWORD(lParam), HIWORD(lParam)};
HMENU hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU1));
if(NULL == hMenu)
{
return 0;
}
HMENU hSubMenu = GetSubMenu(hMenu, 0);
int nCount = GetMenuItemCount(hSubMenu);
UINT nID = 0;
const UINT MAX_COUNT = 64;
TCHAR szText[MAX_COUNT] = {0};
for(int i=0; i<nCount; i++)
{
nID = GetMenuItemID(hSubMenu, i);
if((-1 != nID) && (0 != nID))
{
GetMenuString(hSubMenu, nID, szText, MAX_COUNT, MF_BYCOMMAND);
ModifyMenu(hSubMenu, nID, MF_BYCOMMAND | MF_OWNERDRAW, nID, szText);
}
}
TrackPopupMenu(hSubMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, NULL, hWnd, NULL);
DestroyMenu(hMenu);
}
break;
case WM_MEASUREITEM:
{
static int i = 0;
TCHAR buf[32] = {0};
_stprintf(buf, _T("MenuItem: %d"), ++i);
MessageBox(hWnd, buf, _T("Message"), 0);
}
break;
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.