CMenu menu;
     menu.LoadMenu(IDR_MENUCONTEXT);
POINT pp;
::GetCursorPos(&pp);
menu.TrackPopupMenu(TPM_LEFTALIGN,pp.x,pp.y,this);

解决方案 »

  1.   

    我测试了一下windows系统菜单也是如此的,
    你可以在桌面上各个位置点一下右键,弹出菜单也是宽窄不一
      

  2.   

    to wang790729(tommy) 没听说过只能说明你做的少,不能说明我厉害
      

  3.   

    我知道怎么回事了
    我把菜单资源设成view as popup就会这样
    改回来
    然后这样就解决了
    CMenu menu;
    menu.LoadMenu(IDR_MENUCONTEXT);
    CMenu *pMenu=menu.GetSubMenu(0);
    ASSERT(pMenu);
    POINT pp;
    ::GetCursorPos(&pp);
    pMenu->TrackPopupMenu(TPM_LEFTALIGN,pp.x,pp.y,this);