[WinAPI] CScrollBar 사용법 – 1. 기초

[WinAPI] CScrollBar 사용법 – 1. 기초

안녕하세요, CScrollBar의 사용법에 대해 알아보겠습니다.
이번 글에서는 CScrollBar를 생성하는 코드만 알아보고 다음 글에서부터 이를 활용하여 화면을 만들어 보도록 하겠습니다.

가로 스크롤을 만든다는 가정하에 아래와 같이 헤더파일에 CScrollBar를 선언합니다.

CScrollBar m_ctlHScroll;

CScrollBar를 생성하는 방법은 아래와 같습니다.

if ( NULL == m_ctlHScroll.GetSafeHwnd() )
{
	m_ctlHScroll.Create( 
		WS_CHILD | WS_VISIBLE | SBS_HORZ | SBS_BOTTOMALIGN // 속성
		, rectScrollH // 위치
		, this // 부모 윈도우
		, nID // 스크롤 막대의 컨트롤 ID입니다
	);
	m_ctlHScroll.ShowScrollBar( TRUE );
}

CScrollBar의 범위와, 위치, 정보를 설정하는 방법은 SCROLLINFO 구조체를 사용합니다. 그 방법은 아래와 같습니다.

SCROLLINFO scrInfo;
scrInfo.cbSize = sizeof( scrInfo );
scrInfo.fMask = SIF_ALL;
scrInfo.nMin = 0; // 스크롤 최소값
scrInfo.nMax = 1920; // 스크롤 최대값
scrInfo.nPage = m_rectClient.Width(); // 페이지 번호
scrInfo.nTrackPos = 0; // 드래깅 상태의 트랙바 위치
scrInfo.nPos = 0; // 트랙바 위치

m_ctlHScroll.SetScrollRange( scrInfo.nMin, scrInfo.nMax ); // 범위 설정
m_ctlHScroll.SetScrollPos( scrInfo.nPos ); // 위치 설정
m_ctlHScroll.SetScrollInfo( &scrInfo ); // 스크롤바 정보 설정

CScrollBar의 정보를 얻는 방법은 아래와 같습니다.

SCROLLINFO scrInfo;
m_ctlHScroll.GetScrollInfo( &scrInfo )

위 코드는 CScrollBar 사용하는 방법입니다. 다음 글에서는 이 방법들을 이용하여 사용자가 원하는 화면을 만들어 보도록 하겠습니다.