초간단 MFC 강좌 - 스크롤바로 문자 이동하기 > MFC Tip

본문 바로가기

사이트 내 전체검색

뒤로가기 MFC Tip

초간단 MFC 강좌 - 스크롤바로 문자 이동하기

페이지 정보

작성자 이즈 작성일 11-11-19 01:00 조회 1,209 댓글 0

본문

박스에 에디터 박스도 넣어준다. 수치을 보이게 하기 위해서다.
대충 그림과 같이 만들어준다.mfc 의 최강기능 Ctrl + w 눌러준다.
이게 각각에 컨트롤 부분에 변수를 지정해준다.이제 스크롤에 관련된 클래스을 만들어주자 
오브젝트 아이디에서  CMFGLOGDLG 을 선택한상태에서 
WM_VSCROLL (새로스크롤) 와 WM_HSCROLL (가로스크롤) 을 선택하여준다(떠블클릭)함수들이 만들어 졌으면 멤버 변수를 만들어준다. 
CMFGLOGDlg 에서 오른쪽마우스 눌러서 Add Member Variable.. 선택한다

타입에는 정수형 타입을 적어준다  int m_iUp  또 int m_iDown 를 만들어준다.

이제부터 각 변수및 컨트럴을 초기화한다.

OnInitDialog() 에서 
....
.....
	// TODO: Add extra initialization here
	m_iUp= 0;
	m_iDown =0;
m_vScroll.SetScrollRange(0,255);
m_vScroll.SetScrollPos(0);

m_hScroll.SetScrollRange(0,255);
m_hScroll.SetScrollPos(0);
	return TRUE;  // return TRUE  unless you set the focus to a control

처럼 초기화해준다.
SetScrollRang() 는 범위를 지정한다.
SetScrollPos(); 초기화 


OnPaint()  함수에서 아래와 같이 적어준다.
CClientDC dc(this);
	dc.TextOut(m_iDown,m_iUp,"A");   컨트럴이 움직이면 문자 A 가 움직일것이다.


컨트럴함수에 키가 움직이면 어떻게 하라는 지시를 해줘야한다  아까 만든 클래스에 적용

void CMFGLOGDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default

	switch(nSBCode)
	{
	case SB_LINELEFT:
		m_iUp--;
			break;
	case SB_LINERIGHT:
		m_iUp++;
		break;
	case SB_PAGELEFT:
		m_iUp--;
		break;
	case SB_PAGERIGHT:
		m_iUp++;
		break;
	case SB_THUMBPOSITION:
		m_iUp=nPos;
		break;
	
	}
	m_ivEdit=m_vScroll.GetScrollPos();
    m_vScroll.SetScrollPos(m_iUp);
	UpdateData(FALSE);
	Invalidate(TRUE);
	
	CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CMFGLOGDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default

		switch(nSBCode)
	{
	case SB_LINELEFT:
		m_iDown--;
			break;
	case SB_LINERIGHT:
		m_iDown++;
		break;
	case SB_PAGELEFT:
		m_iDown--;
		break;
	case SB_PAGERIGHT:
		m_iDown++;
		break;
	case SB_THUMBPOSITION:
		m_iDown=nPos;
		break;
	
	}
	m_ihEdit=m_hScroll.GetScrollPos();
    m_hScroll.SetScrollPos(m_iDown);
	UpdateData(FALSE);  // 변수값 갱신
	Invalidate(TRUE); // 화면갱신
	
	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}



GetScrollPos() 스크롤바의 위치값을 변수에 전달한다.
SetScrollpos() 스크롤바의 위치를 지정한다.
스크롤바로 문자을 이동시켜봅시다.

새로운 프로젝트을 만든다음 다이얼로그을 만든다.

Vertical (버티칼:세로) 와 Horizontal (호리존탈:가로)  를 다이얼로그에 붙여준다.

댓글목록 0

등록된 댓글이 없습니다.

전체 172건 1 페이지
게시물 검색
Copyright © www.qdata.co.kr All rights reserved.

사이트 정보

PC 버전으로 보기