컨트롤바(툴바, 다이얼로그바) 보이기/숨기기
페이지 정보
본문
툴바나 다이얼로그 바를 포함한 컨트롤바를 메뉴를 사용해서 보이기, 숨기기를 할 때 다음과 같이 하는게 가장 편한 것 같습니다.
어떤 컨트롤 바를 m_wndBar 라는 이름으로 만들었다고 합시다.
CMainFrame::OnCreate에서 Create를 하겠죠?
그리고 그걸 보이고 숨기는 메뉴가 있겠죠?
그 메뉴의 아이디를 ID_VIEW_BAR 라고 합시다.
그러면 m_wndBar.Create(... , ID_VIEW_BAR); 이렇게 만듭니다.
즉 메뉴의 아이디가 child의 아이디가 되게 하는거죠.
다른 차일드 컨트롤의 아이디와 겹치지 않도록 주의하세요.
그리고 CMainFrame의 메시지 맵에서
ON_COMMAND_EX(ID_VIEW_BAR, OnBarCheck)
ON_UPDATE_COMMAND_UI(ID_VIEW_BAR, OnUpdateControlBarMenu)
이렇게 두줄을 넣어줍니다. 그럼 끝이에요.
OnBarCheck이나 OnUpdateControlBarMenu는 CFrameWnd의 함수인데, 넘어온 인자를 가지고 그 아이디에 해당하는 control bar를 찾아서 알아서 보이고 숨기거나, 상태를 업데이트 해주는 함수입니다.
필요하다면 직접 소스를 찾아서 복사해와서 원하는대로 고쳐서 써도 되겠죠.
어떤 컨트롤 바를 m_wndBar 라는 이름으로 만들었다고 합시다.
CMainFrame::OnCreate에서 Create를 하겠죠?
그리고 그걸 보이고 숨기는 메뉴가 있겠죠?
그 메뉴의 아이디를 ID_VIEW_BAR 라고 합시다.
그러면 m_wndBar.Create(... , ID_VIEW_BAR); 이렇게 만듭니다.
즉 메뉴의 아이디가 child의 아이디가 되게 하는거죠.
다른 차일드 컨트롤의 아이디와 겹치지 않도록 주의하세요.
그리고 CMainFrame의 메시지 맵에서
ON_COMMAND_EX(ID_VIEW_BAR, OnBarCheck)
ON_UPDATE_COMMAND_UI(ID_VIEW_BAR, OnUpdateControlBarMenu)
이렇게 두줄을 넣어줍니다. 그럼 끝이에요.
OnBarCheck이나 OnUpdateControlBarMenu는 CFrameWnd의 함수인데, 넘어온 인자를 가지고 그 아이디에 해당하는 control bar를 찾아서 알아서 보이고 숨기거나, 상태를 업데이트 해주는 함수입니다.
필요하다면 직접 소스를 찾아서 복사해와서 원하는대로 고쳐서 써도 되겠죠.
댓글목록
등록된 댓글이 없습니다.