我在CWND的子类中添加了菜单,但怎么不显示出来?
pMenuWnd 是一个指向CWND子类的指针;
主要的代码如下:
m_NewMenu->LoadMenu(IDR_MENU1);

pMenuWnd->SetMenu(m_NewMenu); pMenuWnd->ShowWindow(SW_SHOW);帮我看看原因在哪。

解决方案 »

  1.   

    CWND类是什么类???
    许多CWnd类(如CButton)是没有菜单的.
      

  2.   

    写快了,CWND就是CWnd类。这是个测试的小程序,一个基于对话框的简单程序,点击一个键后,我想跳出一个含有菜单的子窗口,子窗口是一个CWnd的子类,里面什么也没添加。
    void CMyTestDlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    CRect rc(200, 100, 300, 300);
    pMenuWnd = new CMenuWnd();
    pMenuWnd->Create( NULL, NULL,WS_VISIBLE| WS_BORDER| WS_TILED |WS_CAPTION   , rc,this,NULL);
    m_NewMenu = new CMenu();
    m_NewMenu->LoadMenu(IDR_MENU1);

    pMenuWnd->SetMenu(m_NewMenu); pMenuWnd->ShowWindow(SW_SHOW);
    }
      

  3.   

    IDR_MENU1是我新建的一个菜单资源
      

  4.   

    http://blog.csdn.net/he_zhidan/archive/2003/07/08/16997.aspx
      

  5.   

    方法一:
    void CHeView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
     CMenu PopupMenu;
     PopupMenu.CreatePopupMenu();
    PopupMenu.AppendMenu(MF_STRING,ID_FILE_NEW,"NEW..");
    //...ClientToScreen(&point);
    PopupMenu.TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
     CView::OnLButtonDown(nFlags, point);
    }方法二:
    void CHeView::OnLButtonDown(UINT nFlags, CPoint point) 
    { CMenu menu;
     menu.LoadMenu(IDR_DUMMY);
     CMenu *pMenu=menu.GetSubMenu(0);
     ASSERT(pMenu!=NULL); ClientToScreen(&point);
            pMenu->TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
     CView::OnLButtonDown(nFlags, point);
    } 方法三:
    void CHeView::OnLButtonDown(UINT nFlags, CPoint point) 
    {
     CWnd *pWnd=AfxGetApp()->GetMainWnd();
     CMenu * pMenu=pWnd->GetMenu();
     pMenu=pMenu->GetSubMenu(0);
        ASSERT(pMenu!=NULL); ClientToScreen(&point);
     pMenu->TrackPopupMenu(TPM_CENTERALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);}