单文档MFC应用程序,想要右键单击工具栏和菜单栏右边的空白处时弹出弹出菜单,请问该如何实现?

解决方案 »

  1.   

    响应 WM_NCRBUTTONDOWN 或 WM_NCRBUTTONUP 消息
      

  2.   

    同意楼上。在你的CxxxVIEW的属性里添加反应函数就行了
      

  3.   

    不行,加了WM_NCLBUTTON 
    void CMYSDIView::OnNcRButtonDown(UINT nHitTest, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 CView::OnNcRButtonDown(nHitTest, point);
            CMenu   menu; 
            menu.LoadMenu(   IDR_MENU1   ); 
            CMenu   *pPopupMenu   =   menu.GetSubMenu(   0   ); 
            ClientToScreen(   &point   ); 
            pPopupMenu   ->   TrackPopupMenu(   TPM_RIGHTBUTTON,   point.x,      point.y,this   ); 
            pPopupMenu   ->   DestroyMenu(); 
    }
    加了后,在标题栏右键出现了;我想要的是在工具栏出;
    在工具栏右键还是   标准
                       自定义
      

  4.   

    右键单击菜单栏右边的空白处弹出菜单:这个需要你在CMainFrame中响应 WM_NCRBUTTONDOWN
      

  5.   

    void CMainFrame::OnNcLButtonDown(UINT nHitTest, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 CFrameWndEx::OnNcLButtonDown(nHitTest, point);
    CPoint pt;
    GetCursorPos(&pt);
    CMenu menu,*pM;
    menu.LoadMenu(IDR_MENU1);//装载早已设计好的菜单资源
    pM=menu.GetSubMenu(0);        
    pM->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);}不行