Console Functions
1.游標前往指定的座標
2.設定游標的顯示比例
// Version:Visual C++ 6.0 // 引入#include<windows.h> // x表示行值;y表示列值 void gotoxy(int x, int y) { COORD point; point.X = x; point.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),point); }
3.取得目前座標值
// Version:Visual C++ 6.0 // 控制螢幕游標顯示 // 引入#include<windows.h> // _bVisible:TRUE表示顯示游標;FALSE表示隱藏游標 // CCI.dwSize:表示游標的大小佔字元的百分之幾,一般是25%。不懂意思的話, // 把CCI.bVisible設TRUE,然後CCI.dwSize設0、50、100,你就曉得囉!!! void SetCursorVisible(BOOL _bVisible,DWORD _dwSize) { CONSOLE_CURSOR_INFO CCI; CCI.bVisible = _bVisible; CCI.dwSize = _dwSize; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&CCI); }
// Version:Visual C++ 6.0 // 引入#include<windows.h> // 假設cx,cy是用來取目前座標值的變數,利用這個函數的方式就是: // getxy(&cx,&cy); void getxy(int *x,int *y) { CONSOLE_SCREEN_BUFFER_INFO csbi; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi); *x = csbi.dwCursorPosition.X; *y = csbi.dwCursorPosition.Y; }
4.清除螢幕
5.設定文字顏色與背景顏色
// Version:Visual C++ 6.0 // 轉載至Win32 Console Application Tools // 引入#include<windows.h> // 當然可以利用system("CLS");不一定要用這一個函數 void clrscr() { COORD coordScreen = { 0, 0 }; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; DWORD dwConSize; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hConsole, &csbi); dwConSize = csbi.dwSize.X * csbi.dwSize.Y; FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten); GetConsoleScreenBufferInfo(hConsole, &csbi); FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten); SetConsoleCursorPosition(hConsole, coordScreen); }
6.設定console視窗大小
// Version:Visual C++ 6.0 // 轉載至Win32 Console Application Tools // 引入#include<windows.h> void setrgb(int color) { switch (color) { case 0: // White on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); break; case 1: // Red on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED); break; case 2: // Green on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN); break; case 3: // Yellow on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); break; case 4: // Blue on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE); break; case 5: // Magenta on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE); break; case 6: // Cyan on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); break; case 7: // Black on Gray SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_INTENSITY); break; case 8: // Black on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE); break; case 9: // Red on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_RED); break; case 10: // Green on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_GREEN); break; case 11: // Yellow on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN); break; case 12: // Blue on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_BLUE); break; case 13: // Magenta on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_RED | FOREGROUND_BLUE); break; case 14: // Cyan on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_BLUE); break; case 15: // White on White SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | FOREGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); break; default : // White on Black SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); break; } }
7.讓Console Window成全螢幕
// Version:Visual C++ 6.0 // 轉載至Win32 Console Application Tools // 引入#include<windows.h> void SetScrnSize(int W, int H) { SMALL_RECT SR; SR.Top = 0; SR.Left = 0; SR.Bottom = H-1; SR.Right = W-1; SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE),TRUE, &SR); COORD Sz; Sz.X = W; Sz.Y = H; SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE),Sz); }
// Version:Visual C++ 6.0 // 轉載至C++ Learning Communcity // 引入#include<windows.h> void fullscreen() { keybd_event(VK_MENU,0x38,0,0); keybd_event(VK_RETURN,0x1c,0,0); keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0); }
Edited By James On 2007/01/29