간단한 다이얼로그 기반의 어플리케이션을 만들 때 EditBox 콘트롤에 숫자를 넣고 마우스를 이용해 값을 변경할 때 사용한다.
위에 '한 번에 다음 줄식(N)' 밑에 EditBox 와 같이 붙어있는 <> 버튼이 Spin 콘트롤이다. 이 컨트롤을 마우스로 누를 때 마다 숫자가 증가하거나 감소하는 것을 알 수 있다.
이제 간단한 작성법을 알아보자.
VC++ 프로그램을 실행시켜 Dialog 기반의 MFC 프로그램을 생성한다. 그 다음 Dialog를 디자인 한다.
Edit Box 옆에 Spin Control 이 붙어 있는 모습을 볼 수 있다. 실행 시키기 전에 간단한 설정을 해보자. Spin Ctrl 이 edit box 와 상호 작용하기 위해서 연결해주어야 한다. 이 연결을 자동을 해주는 옵션이 있는데 Spin Control 의 Properties에 들어가면 다음 화면에서 Auto buddy 와 Set buddy integer를 체크 해주면 된다. 그려면 Tab order(Tab을 누르면 포커스가 움직이는 순서)에 따라 앞에 따라오는 Control 과 자동으로 버디를 맺을 수 있게 해준다.
Tab order를 설정하기 위해서 메뉴의 Layout->Tab order(Ctrl+D)를 선택하면 다음 화면이 나오는데 Control들의 순서를 원하는대로 클릭하면 번호가 자동으로 매겨진다.
이렇게 설정을 해 놓으면 모든 준비는 끝이 난다. 실행하면 자동으로 연결되어 Spin Control로 값이 변경되는 것을 확인 할 수 있다.
☞☞ 추가적으로 Spin Control을 설정하기 위한 함수를 보면 다음과 같다.
void
SetRange(
int
nLower,
int
nUpper
);
: 조종할
값의
범위를 설정하는 함수
BOOL
SetAccel(
int
nAccel,
UDACCEL*
pAccel
);
: 한번에
바뀌는
숫자의
크기와
값이
변경되는
시간을
설정하는
함수이다. 이를
위해 UDACCEL이라는
구조체를
사용하는데
다음과
같다.
typedef struct {
UINT nSec; // 시간 Interval
UINT nInc; // 증감 Interval
}UDACCEL, FAR *LPUDACCEL;