contextmenu в дочернем фрейме задачи sdi - mfc
привет.
у меня есть программа mfc - sdi.я разбираю свое представление на 3 подвида с помощью статического разделителя и в одном из представлений создаю дочерний фрейм, чтобы на нем была закрепляемая панель инструментов.
вот мои коды:
1.Вот как я создаю дочерний фрейм:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class if(!m_wndSpMain.CreateStatic(this, 2, 1, WS_CHILD | WS_VISIBLE, AFX_IDW_PANE_FIRST)){ TRACE0("Failed to CreateStaticSplitter\n"); return FALSE; } if(!m_wndSpMain.CreateView(0, 0, RUNTIME_CLASS(COutputView), CSize(100, 100), pContext)){ TRACE0("Failed to create first pane\n"); return FALSE; } if(!m_wndSpSub.CreateStatic(&m_wndSpMain, 1, 2,WS_CHILD | WS_VISIBLE, m_wndSpMain.IdFromRowCol(1, 0))){ TRACE0("Failed to create nested splitter\n"); return FALSE; } if(!m_wndSpSub.CreateView(0, 0, RUNTIME_CLASS(CTab), CSize(200, 0), pContext)){ TRACE0("Failed to create second pane\n"); return FALSE; } //**************************************************************************** //the most important codes are here: //**************************************************************************** pContext->m_pNewViewClass = RUNTIME_CLASS(CMainView); if(!m_wndSpSub.CreateView(0, 1, RUNTIME_CLASS(CmainSPFrame), CSize(0, 0), pContext)){ TRACE0("Failed to create third pane\n"); return FALSE; } return TRUE;//CFrameWndEx::OnCreateClient(lpcs, pContext); }
как вы можете видеть, у меня есть класс Cview (CMainview) на моем дочернем фрейме (CmainSPFrame).
2.и вот как я создаю контекстное меню в своем классе CMainview:
добавить контекстное меню в приложение
void CLedMatrixAnimatorApp::PreLoadState() { GetContextMenuManager()->AddMenu(_T("First View menu"), IDR_FIRSTVIEW); }
добавить контекстное меню для просмотра
void CMainView::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { #ifndef SHARED_HANDLERS theApp.GetContextMenuManager()->ShowPopupMenu(IDR_FIRSTVIEW, point.x, point.y, this); #endif }
теперь это моя проблема:
после того,как я добавляю обработчики меню в свой класс CMainView, кажется, что сообщение ON_COMMAND не отправляется в veiw, и все пункты меню все еще серые, не хватает ли чего-то?
извините за мой плохой английский и надеюсь,что вы ответите на мой вопрос.
с наилучшими пожеланиями - D rasool