반응형
|
#include이 함수는 텍스트 모드에서 (left, top)-(right, botton) 부분을 상하로 스크롤시키는 함수이다.#include /* graphics.h 외 conio.h에도 컬러상수가 정의되어 있음 */ #define UP_SCROLL 0x06 #define DOWN_SCROLL 0x07 void scroll(int left, int top, int right, int bottom, int num, int func, int color) { union REGS r; r.h.ah = func; /* func 가 0x06이면 위로, 0x07이면 아래로 스크롤된다. */ r.h.al = num; /* 스크롤시킬 줄수 */ r.h.bh = color<<4; /* 스크롤 된 후의 빈 공간의 색깔 */ r.h.ch = top; /* 스크롤시킬 화면의 시작 y 좌표 */ r.h.cl = left; /* 스크롤시킬 화면의 시작 x 좌표 */ r.h.dh = bottom; /* 스크롤시킬 화면의 끝 y 좌표 */ r.h.dl = right; /* 스크롤시킬 화면의 끝 x 좌표 */ int86(0x10, &r, &r); }
여기서 ah 에 기능번호를 넣게 되는데, 쓰기에 편하게 #define문을 써서 UP_SCROLL을 0x06으로,
DOWN_SCROLL을 0x07로 정의하였다.
color 는 스크롤 된 후의 빈 공간의 색을 지정해 주는 것인데, graphics.h / conio.h 에 정의되어 있는
컬러상수를 사용하기 위해서는 컬러상수에 16(==0x10)을 곱해주어야 한다.
이는 왼쪽으로 4비트 이동시켜도 같은 효과를 얻을 수 있다. 0x10을 곱해주어야 하는 이유는 앞의
color() 함수에서 쓰인 색상바이트 구조대로 색을 넣어야 하기 때문이다.
단, 여기서는 배경색만 쓰이고, 전경색은 쓰이지 않으므로 색상바이트의 4비트만 채워주면 된다.
scroll(0, 0, 79, 23, 1, UP_SCROLL, BLACK); 이라고 쓰면 화면전체를 한칸 위로 스크롤시킨다.
set_blink() 함수를 써서 배경색으로 사용되는 색을 16가지로 늘릴 수 있다.
반응형
'기타 언어 > C# & MFC' 카테고리의 다른 글
텍스트에 컬러문자 출력하기 (0) | 2010.08.31 |
---|---|
비디오 메모리에 직접엑세스 하는 방법 (3) | 2010.08.31 |
메모리 내용을 읽어내어 키보드 상태 알아내기 - 4가지 방법 (0) | 2010.08.31 |
인터럽트와 레지스터 (1) | 2010.08.31 |
SendMessage() 마우스 조작을 하고 싶을 때 (0) | 2010.08.04 |
섭씨 / 화씨 변경기능 (0) | 2010.08.04 |
Refactor 기능을 이용해 필드 자동소스 생성 (0) | 2010.08.02 |
C# Transaction 처리를 위한 예제 (1) | 2010.07.22 |