Thứ Năm, 24 tháng 12, 2009

// // Leave a Comment

Xây dựng hàm trong C++ | clrscr, gotoxy, SetColor, SetBGColor, getch, ... trên VC++

1. Hàm getch();
Trong VC++, bạn chỉ cần thêm dấu gạch dưới vào trước tên hàm là OK. _getch(); Hàm này nằm trong thư viện conio.h của VC++.

2. Hàm clrscr();
void clrscr(void)
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
HANDLE hConsoleOut;
COORD Home = {0,0};
DWORD dummy;

hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);

FillConsoleOutputCharacter(hConsoleOut,' ',csbiInfo.dwSize.X * csbiInfo.dwSize.Y,Home,&dummy);
csbiInfo.dwCursorPosition.X = 0;
csbiInfo.dwCursorPosition.Y = 0;
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCu rsorPosition);
}

3. Hàm gotoxy();
void gotoxy(short x,short y)
{
HANDLE hConsoleOutput;
COORD Cursor_an_Pos = { x,y};
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos);
}

4. Hàm SetColor(...);
void SetColor(WORD color)
{
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);

CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);

WORD wAttributes = screen_buffer_info.wAttributes;
color &= 0x000f;
wAttributes &= 0xfff0;
wAttributes |= color;

SetConsoleTextAttribute(hConsoleOutput, wAttributes);
}

5. SetBGColor (...);
void SetBGColor(WORD color)
{
HANDLE hConsoleOutput;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);

CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);

WORD wAttributes = screen_buffer_info.wAttributes;
color &= 0x000f;
color <<= 4;
wAttributes &= 0xff0f;
wAttributes |= color;

SetConsoleTextAttribute(hConsoleOutput, wAttributes);
}

6. WhereX và WhereY
int wherex( void )
{
CONSOLE_SCREEN_BUFFER_INFO coninfo;
GetConsoleScreenBufferInfo (STDOUT, &coninfo);
return coninfo.dwCursorPosition.X;
}

int wherey( void )
{
CONSOLE_SCREEN_BUFFER_INFO coninfo;
GetConsoleScreenBufferInfo (STDOUT, &coninfo);
return coninfo.dwCursorPosition.Y;
}
Lưu ý: clrscr(); trong VC++ thay bằng system("cls"); #include

0 comments: