自定义弹出菜单是不是插入菜单资源得到?
第一项应该设置pop,显示时不出现第一项对吗?
怎么显示时,菜单项少的话,鼠标点击时的点与菜单项第一项隔很远,中间空出很多。
是不是有默认的项数啊?怎么设置啊!?
谢谢啦!

解决方案 »

  1.   

    1.不用设置为POP,第一项不会显示出来
    2.菜单大小是和你在资源设计器里创建的大小一致的,中间空很多是菜单资源的问题
      

  2.   

    这个给参考一下
    void CMyEdit::OnRclickMyEdit(NMHDR* pNMHDR, LRESULT* pResult) 

    // TODO: Add your control notification handler code here 
    CMenu menu; 
    LPPOINT  point=new  tagPOINT;  
    ::GetCursorPos(point);//得到鼠标位置 VERIFY( menu.LoadMenu(IDR_MENU2)); 
    CMenu* popup = menu.GetSubMenu(0); 
    ASSERT(popup != NULL ); 
    SetEnableMenu(popup); 
    popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point->x, point->y, this ); 
    }
      

  3.   

    注意TrackPopupMenu使用屏幕坐标。
      

  4.   

    可以用菜单资源,第1项不会显示。也可以用代码CreatePopupMenu、AppendMenu来创建菜单。
    如果你利用消息中的鼠标位置,需要用ClientToScreen函数将Point转为屏幕坐标。
      

  5.   

    可以参看潘爱民翻译的<vc++技术内幕>第四版,有具体示例.