Отменить нажатие клавиши ALT в CMainFrame - PullRequest
2 голосов
/ 29 сентября 2010

У меня следующий код:

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);

Проблема в том, что когда я нажимаю <ALT>, появляется меню (IDR_APP_MAINFRAME).Как я могу всегда скрывать меню и не реагировать на нажатия?

Я слышал, что это связано с управлением акселератором в MFC, но я не мог видеть управление в своем проекте, который использует VS2008..

1 Ответ

0 голосов
/ 29 сентября 2010

В вашем CMainFrame переопределите PreCreateWindow и уничтожьте меню. Попробуйте что-то вроде этого:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
        if(cs.hMenu!=NULL)
        {
                ::DestroyMenu(cs.hMenu);
                cs.hMenu = NULL;
        }
        return CFrameWnd::PreCreateWindow(cs);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...