2

我有以下代码:

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 的项目解决方案中看不到该控制。

4

1 回答 1

0

在您的CMainFrame覆盖PreCreateWindow和销毁菜单。尝试这样的事情:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
        if(cs.hMenu!=NULL)
        {
                ::DestroyMenu(cs.hMenu);
                cs.hMenu = NULL;
        }
        return CFrameWnd::PreCreateWindow(cs);
}
于 2010-09-29T16:24:55.500 回答