在任务栏上创建了一个图标,右键点击图标要弹出一个菜单出来,代码是这样的:
HMENU hMenu = LoadMenu(hInst, (LPCSTR)IDR_MENU1);  
point.x = LOWORD(lParam);
point.y = HIWORD(lParam);
ClientToScreen(hWnd,&point); 
TrackPopupMenu(hMenu, TPM_LEFTALIGN, point.x, point.y, 0, hWnd, NULL);资源属性:
结果是菜单出来了,但是现实不对,现实成这样了而且鼠标移到中间的菜单时,子菜单menu_4还可以正常显示
请问是什么原因
menuVC

解决方案 »

  1.   

    HMENU hMenu = LoadMenu(hInst, (LPCSTR)IDR_MENU1);  
    hMenu = GetSubMenu(hMenu, 0);
      

  2.   

    HMENU hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU1)); 
    ASSERT(NULL != hMenu);
    hMenu = GetSubMenu(hMenu, 0);
    ASSERT(NULL != hMenu);
     point.x = LOWORD(lParam);
    point.y = HIWORD(lParam);
    ClientToScreen(hWnd,&point);
     TrackPopupMenu(hMenu, TPM_LEFTALIGN, point.x, point.y, 0, hWnd, NULL);
      

  3.   

    多谢VisualEleven,这下明白了,菜单资源应该像下面这种搞法,弹出的菜单其实是现实的menu_1下的子菜单结果如下
    但是为什么不能将IDR_MENU1直接显示出来呢,非要搞一个submenu来显示
      

  4.   

    IDR_MENU1不是PopupMenu(drop-down menu, submenu, or shortcut menu)