MDI程序,有一个CFormView的派生类,需要在他的对话框上添加一套菜单。问题来了: CFormView所关联的对话框资源必须是Child的,而Child之后就无法添加菜单了,要怎么办才好呢?

解决方案 »

  1.   

    谢谢楼上。但是顾客要求要在CFormView上直接有菜单。
      

  2.   

    其实我的问题意思是:能不能使用一些小技巧,调用MFC标准的方法来添加标准菜单。
    如果不能也没关系,我必须去用麻烦一些的方法了,比如自己写一个类,自绘菜单出来。
      

  3.   

    //定义菜单的ID。
    IDM_TEST 33000//菜单的消息映射。
    afx_msg void OnTest();  //.h文件
    ON_COMMAND(IDM_TEST, OnTest)  //.cpp文件//菜单的创建。
    HMENU m_hPopupMenu; //定义为父窗口类的成员。m_hPopupMenu = CreatePopupMenu();
    AppendMenu(m_hPopupMenu, MF_STRING, IDM_TEST, _T("Test"))//弹出菜单。
    void CMyDialog::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
        TrackPopupMenu(m_hPopupMenu, TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, 0, m_hWnd, NULL);
    }//菜单的操作。
    void CMyDialog::OnTest()
    {
    ...
    }
      

  4.   

    //删除菜单。void CMyDialog::OnDestroy() 
    {
        CDialog::OnDestroy();    if (IsMenu(m_hPopupMenu))
        {
            DestroyMenu(m_hPopupMenu);
        }
    }//定义菜单的ID。(最好与资源中的其它ID值不同)
    #define IDM_TEST 33000 
      

  5.   

    可以用自定义控件模拟菜单栏,响应相关消息,用TrackPopupMenu来弹出子菜单。