LRESULT UserListViewNotify (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HINSTANCE hInst=GetModuleHandle(NULL);
switch (((LPNMHDR) lParam)->code)
{
case NM_RCLICK:
HMENU hMenu;
POINT point;
hMenu=LoadMenu(hInst,TEXT("USERPOPUP"));
GetCursorPos(&point);
ClientToScreen (hwnd, &point) ;
TrackPopupMenu(hMenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL);
break;
}

return TRUE;
}

解决方案 »

  1.   

    HMENU hMenu; 
    POINT point; 
    hMenu=LoadMenu(hInst,TEXT("USERPOPUP"));
    hMenu=GetSubMenu(hMenu,0); 
    GetCursorPos(&point); 
    //ClientToScreen (hwnd, &point) ; 
    TrackPopupMenu(hMenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL); 
      

  2.   

    确保这句hMenu=LoadMenu(hInst,TEXT("USERPOPUP")); 成功,及USERPOPUP菜单存在,可以加断点看看hMenu是否为空
      

  3.   

    LRESULT UserListViewNotify (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
    HINSTANCE hInst=GetModuleHandle(NULL);
    switch (((LPNMHDR) lParam)->code)
    {
    case NM_RCLICK:
    HMENU hMenu,hTrackMenu;
    POINT point;
    hMenu=LoadMenu(hInst,TEXT("USERPOPUP"));
    hTrackMenu = GetSubMenu (hMenu, 0) ;
    GetCursorPos(&point);
    ClientToScreen (hwnd, &point) ;
    TrackPopupMenu(hTrackMenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL);
    break;
    }

    return TRUE;
    }菜单是:
    USERPOPUP MENU DISCARDABLE
    BEGIN
    POPUP "user"
    BEGIN 
    MENUITEM "删除" IDM_USER_DEL
    MENUITEM "禁用" IDM_USER_DIS
    END
    END