도구바 및 상태바 설정

유혜정·2022년 4월 15일
0

도구바 설정

상태바 설정

프롬프트에 '선의 색깔을 초록색으로 변경합니다.' 입력

마우스 커서에서 활성화

프롬프트에 '\n초록'추가하기

상태바 영역

기존 상태바


선언하는 곳
----MainFrame.cpp

static UINT indicators[] =
{
	ID_SEPARATOR,           // 상태 줄 표시기
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

생성하는 곳
----MainFrame.cpp

	if (!m_wndStatusBar.Create(this))
	{
		TRACE0("상태 표시줄을 만들지 못했습니다.\n");
		return -1;      // 만들지 못했습니다.
	}
	m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

상태바 '색상영역' 추가


색상영역 추가
----MainFrame.cpp

static UINT indicators[] =
{
	ID_SEPARATOR,           // 상태 줄 표시기
	ID_INDICATOR_COLOR,
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};


----doc.cpp

void CCHomeWorkDoc::OnUpdateIndicatorColor(CCmdUI* pCmdUI)
{
	// TODO: 여기에 명령 업데이트 UI 처리기 코드를 추가합니다.
	switch (m_line.m_penColor) {
	case RGB(255, 0, 0):
		pCmdUI->SetText(_T("빨간색"));
		break;
	case RGB(0, 255, 0):
		pCmdUI->SetText(_T("초록색"));
		break;
	case RGB(0, 0, 255):
		pCmdUI->SetText(_T("파랑색"));
		break;
	default:
		pCmdUI->SetText(_T(""));
		break;
	}
}

상태바 '좌표' 추가

특정 좌표만 출력하기
----MainFrame.h

// 특성입니다.
public:
	void SetMousePositionOutput(const CPoint& pt) {
		m_wndStatusBar.SetWindowText(_T("100, 200 pt"));
	}

마우스 위치 좌표를 출력하기
----view.cpp

#include "MainFrm.h"
void CCHomeWorkView::OnMouseMove(UINT nFlags, CPoint point)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
	if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {

		CCHomeWorkDoc* pDoc = GetDocument();
		CClientDC dc(this);

		pDoc->m_line.DrawLastLine(&dc, point);

		pDoc->m_line.push_back(point);
	}

	CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
	pMainFrame->SetMousePositionOutput(point);

	CView::OnMouseMove(nFlags, point);
}

----MainFrame.h

// 특성입니다.
public:
	void SetMousePositionOutput(const CPoint& pt) {
		//m_wndStatusBar.SetWindowText(_T("100, 200 pt"));
		CString str;
		str.Format(_T("%d, %d pt"), pt.x, pt.y);
		m_wndStatusBar.SetWindowText(str);
	}

profile
내가 시작한 공부, 공유할 코드

0개의 댓글