Changing menus in MDI ( MFC)
-
I've got a frame that's contained in a DLL and called via: extern "C" __declspec(dllexport) BOOL APIENTRY TermLoaderMode() { static CBaseMultiDocTemplate *pDocTemplate = NULL; //Derived from CMultiDocTemplate CBaseApp *pApp = (CBaseApp *)AfxGetApp(); if (pDocTemplate == NULL) { pDocTemplate = new CBaseMultiDocTemplate( IDR_LOADER_USER, RUNTIME_CLASS(CBaseDoc), RUNTIME_CLASS(CTermLoaderFrame), RUNTIME_CLASS(CTermLoaderView)); pApp->AddDocTemplate( pDocTemplate ); } return( TRUE ); } I'm trying to change out IDR_LOADER_USER with IDR_LOADER_DEV based upon user type. Users get IDR_LOADER_USER, devs get IDR_LOADER_DEV. In my view class' OnInitialUpdate(), I call the following function but it fails on ::LoadMenu. (returns NULL). Here's my menu grab function: void CTermLoaderView::ReplaceMenu(void) { HMENU hm = ((CTermLoaderView*)GetDocument())->m_hMenuDefault = ::LoadMenu( ::AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_LOADER_DEV)); if(((CTermLoaderView*)GetDocument())->m_hMenuDefault == NULL) { TRACE0("Failure to get menu object."); AfxMessageBox(_T("Failure to get menu object.")); return; } CMDIFrameWnd* frame = ((CTermLoaderView*)GetParent())->GetMDIFrame(); frame->MDISetMenu(CMenu::FromHandle(((CTermLoaderView*)GetDocument())->m_hMenuDefault), NULL); frame->DrawMenuBar(); } Help? Thanks in advance!:confused: