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 に答える