본문 바로가기
개발아닌개발/C,C++

[MFC] SDI 메뉴 모음(m_wndMenuBar) 없애기

by 불청객 2022. 4. 29.
반응형

visual studio 2008

 

 

 

 

 

프로젝트 생성 당시, 정확히는 기억안나지만

MFC의 테마도 변경가능하고, 메뉴 모음?도구 모음?, 툴바 등 온갖 다 있는 상태였음

 

내 프로젝트에 맞는 메뉴 모음(m_wndMenuBar) 제거 하는 코드

 

PreCreateWindow에서도 끄적여보고, Menu를 new로 생성하고 NULL값을 주고 다해봤는데 안되고 결국 해결된 방법.

깔끔한 방식은 아닌것 같지만 일단 안보인다.

 

 

 

 

1. CMainFrame 클래스(MainFrm.cpp)의 OnCreate함수의 해당 부분 제거

m_wndMenuBar를 사용하지 않을 예정이므로 MainFrm.h에서 선언된 멤버 변수도 삭제하기

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...

	if (!m_wndMenuBar.Create(this))
	{
		TRACE0("메뉴 모음을 만들지 못했습니다.\n");
		return -1;      // 만들지 못했습니다.
	}

	m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);

	// 메뉴 모음을 활성화해도 포커스가 이동하지 않게 합니다.
	CMFCPopupMenu::SetForceMenuFocus(FALSE);
    
    
	m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
        
	DockPane(&m_wndMenuBar);
 
 ...
}

 

 

 

 

2. C~App 클래스의 InitInstance() 의 해당 부분 추가

(프로젝트 명이 TempV2 일때, CTempV2App 클래스에 있음) 

BOOL CTempV2App::InitInstance()
{
...

	m_pMainWnd->SetMenu(NULL);     

...
}

 

 

 

 

 

 

 

 

 

 

오류

더보기

afxmenubar.cpp line:731

728x90
반응형

댓글