Jeter appuyez sur la touche ALT CMainFrame
-
26-09-2019 - |
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 ..
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