TrackPopupMenu win32API 怎么进行消息响应

TrackPopupMenu win32API 如何进行消息响应
C/C++ code
    hmenu=CreatePopupMenu();
    InsertMenu(hmenu,ID_FREE, MF_BYCOMMAND,MF_POPUP,"释放鼠标");
    InsertMenu(hmenu,ID_GET, MF_BYCOMMAND,MF_POPUP,"捕获鼠标");


C/C++ code
    case WM_CONTEXTMENU:
        {
            POINT point;
            GetCursorPos(&point);
            ScreenToClient(hwnd,&point);
            TrackPopupMenu(hmenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL);

        }
        break;


C/C++ code
case WM_COMMAND:
        {
            switch(wParam)
            {
            case 1:

                ClipCursor(NULL);
                break;
            case ID_FREE:
                MessageBox(hwnd,"d"," ",MB_OK);

                break;
            }


        }
        break;



怎么右键单击菜单 没有响应 没有弹出消息框


------解决方案--------------------
右键的消息应该是WM_RBUTTONDOWN,不是WM_CONTEXTMENU
------解决方案--------------------
厉害,这都被你发现了
探讨
引用:
右键的消息应该是WM_RBUTTONDOWN,不是WM_CONTEXTMENU


你比我菜些

------解决方案--------------------
看不出来什么,代码贴多点再看吧,可能别的地方出了问题。
------解决方案--------------------
C/C++ code
case WM_CONTEXTMENU:
        {
            UINT xPos = LOWORD(lParam);
            UINT yPos = HIWORD(lParam);

            RECT rc;
            GetClientRect(hDlg, &rc);

            POINT pt = {xPos, yPos};
            ScreenToClient(hDlg, &pt);

            if (PtInRect(&rc, pt))
            {
                      TrackPopupMenu(hmenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL);

                return TRUE;
            } else
                return FALSE;
        }