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

본문 바로가기
사이트 내 전체검색

MFC Tip


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

페이지 정보

작성자 이즈 댓글 0건 조회 661회 작성일 11-11-19 01:00

본문

박스에 에디터 박스도 넣어준다. 수치을 보이게 하기 위해서다.
대충 그림과 같이 만들어준다.박스에 에디터 박스도 넣어준다. 수치을 보이게 하기 위해서다. 대충 그림과 같이 만들어준다.mfc 의 최강기능 Ctrl + w 눌러준다.
이게 각각에 컨트롤 부분에 변수를 지정해준다.mfc 의 최강기능 Ctrl + w 눌러준다. 이게 각각에 컨트롤 부분에 변수를 지정해준다.이제 스크롤에 관련된 클래스을 만들어주자 
오브젝트 아이디에서  CMFGLOGDLG 을 선택한상태에서 
WM_VSCROLL (새로스크롤) 와 WM_HSCROLL (가로스크롤) 을 선택하여준다(떠블클릭)이제 스크롤에 관련된 클래스을 만들어주자 오브젝트 아이디에서 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() 스크롤바의 위치를 지정한다.
함수들이 만들어 졌으면 멤버 변수를 만들어준다. 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 (호리존탈:가로)  를 다이얼로그에 붙여준다.

댓글목록

등록된 댓글이 없습니다.

Total 172건 1 페이지
게시물 검색

회원로그인

설문조사

현재 사용하시는 os 는?

접속자집계

오늘
127
어제
545
최대
688
전체
74,812

그누보드5
Copyright © www.qdata.co.kr. All rights reserved.