Question

Je vais avoir le code suivant:

CMainFrame* pFrame = new CMainFrame;
if (!pFrame)
    return FALSE;
m_pMainWnd = pFrame;
// create and load the frame with its resources
pFrame->LoadFrame(IDR_APP_MAINFRAME,
    WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL,
    NULL);
// The one and only window has been initialized, so show and update it
pFrame->ShowWindow(SW_SHOWMAXIMIZED);

Le problème est, quand je presse <ALT>, le menu (IDR_APP_MAINFRAME) apparaîtra. Comment puis-je cacher toujours le menu et ne pas répondre à presss?

J'avais entendu cela est dû à un contrôle d'accélérateur dans MFC, mais je ne pouvais pas voir le contrôle de ma solution de projet qui utilise VS2008 ..

Était-ce utile?

La solution

Dans votre CMainFrame override PreCreateWindow et détruire le menu. Essayez quelque chose comme ceci:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
        if(cs.hMenu!=NULL)
        {
                ::DestroyMenu(cs.hMenu);
                cs.hMenu = NULL;
        }
        return CFrameWnd::PreCreateWindow(cs);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top