MFC 리본버튼 추가하기

CodeLog·2021년 9월 1일
0
post-thumbnail

MFC 란?

마이크로소프트 파운데이션 클래스 라이브러리(Microsoft Foundation Class Library, MFC)는 마이크로소프트에서 만든 윈도 API를 C++로 둘러 싼 라이브러리이다. 클래스들은 윈도의 공용 컨트롤과 스마트 포인터를 사용하는 창 개체이다.

위키: https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%86%8C%ED%94%84%ED%8A%B8_%ED%8C%8C%EC%9A%B4%EB%8D%B0%EC%9D%B4%EC%85%98_%ED%81%B4%EB%9E%98%EC%8A%A4_%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC

MFC : https://docs.microsoft.com/ko-kr/cpp/mfc/mfc-desktop-applications?view=msvc-160

Category에 버튼에 리본버튼 추가하기

MainFrm.cpp 필요한 버튼 CString 정의

CStirng strTestButton;
strTestButton.LoadString(IDS_CAPTURE);

버튼 String을 선언한 Category의 하위 버튼 패키지를 선택하고 판넬에 추가

//Panel에 Image라는 하위 버튼 패키지에 버튼을 추가
//IDS_CAPTURE는 MFC에서 정의되어 있는 고유 ID 임.
pPanel = pCategory->AddPanel( strImage, m_PanelImages.ExtractIcon(0) );
pPanel->Add(new CMFCRibbonButton(IDS_CAPTURE, strTestButton, 9, 9));

버튼이 활용될 TestView.h 파일에 함수 이벤트 핸들링 할 함수 선언

protected:
		//{{AFX_MSG(CTraceView)
afx_msg void OnCaptureTestButton();

TesetView.cpp 파일에 이벤트를 mpping.

!MESSAGE_MAP 등록시 위치 주의 필요

BEGIN_MESSAGE_MAP(CDataView, CScrollView)
	//{{AFX_MSG_MAP(CDataView)
	ON_WM_LBUTTONDBLCLK()
	...
	ON_WM_DROPFILES()
	//}}AFX_MSG_MAP
    //!!! 여기에 작성해야함. 위 영역은 MFC에서 자동으로 생성되는 영역임
	ON_COMMAND(IDS_CAPTURE, OnCaptureTestButton)
END_MESSAGE_MAP()

TestView.cpp 파일에서 이벤트 동작 코드 구현

void CTraceView::OnCaptureTestButton()
	{
		// do something...
	}

제작하려는 버튼의 이벤트가 여러 View에서 동작하기 위해서는 해당 View마다 선언, mapping, 구현이 필요하다.

profile
개발로그

0개의 댓글