Windows控制臺光標控制
Windows控制臺是在系統(tǒng)出現(xiàn)一些意外情況下的一種非常有效的診斷和測試以及恢復(fù)系統(tǒng)功能的工具,它是微軟推出的一種全新的控制模式,用于在安全模式和其他啟動選項不起作用時修復(fù)系統(tǒng)。
Windows控制臺的光標具有兩個屬性:dwSize 高度,bVisible 是否顯示。
步驟/方法
具體步驟:
1.得標準輸出設(shè)備句柄GetStdHandle(),因為光標是在標準輸出設(shè)備上顯示
2.獲取Windows控制臺光標信息GetConsoleCursorInfo(),可以跳過
3.設(shè)置Windows控制臺光標信息SetConsoleCursorInfo()
4.設(shè)置Windows控制臺光標位置
(1)獲取設(shè)備句柄的函數(shù):
HANDLE WINAPI GetStdHandle(
__in DWORD nStdHandle
);nStdHandle :
1. STD_INPUT_HANDLE 標準輸入設(shè)備,起初,它是控制臺輸入緩存區(qū),CONIN$
2. STD_OUTPUT_HANDLE 標準輸出設(shè)備,起初,它是活動的控制臺屏幕緩存區(qū),CONOUT$
3. STD_ERROR_HANDLE 標準報錯設(shè)備,起初,它是活動的控制臺屏幕緩存區(qū),CONOUT$
(2)Windows控制臺光標信息結(jié)構(gòu)體:
typedef struct _CONSOLE_CURSOR_INFO {
DWORD dwSize; //光標的高度,控制臺一行字符的高度為100,光標的高度為1到100
BOOL bVisible; //是否顯示光標,TRUE為顯示,F(xiàn)ALSE為不顯示
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO
(3)獲取Windows控制臺光標信息:
- BOOL WINAPI GetConsoleCursorInfo(
- __in HANDLE hConsoleOutput,
- __out PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
- );
hConsoleOutput:Windows控制臺屏幕緩存區(qū)句柄,必須具有GENERIC_READ權(quán)限
lpConsoleCursorInfo:一個指向CONSOLE_CURSOR_INFO的指針,用來接收控制臺光標信息
(4)設(shè)置Windows控制臺光標信息:
- BOOL WINAPI SetConsoleCursorInfo(
- __in HANDLE hConsoleOutput,
- __in const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo
- );
hConsoleOutput:Windows控制臺屏幕緩存區(qū)句柄,必須具有GENERIC_READ權(quán)限
lpConsoleCursorInfo:一個指向CONSOLE_CURSOR_INFO的指針,用來設(shè)置控制臺光標信息
(5)設(shè)置Windows控制臺光標位置:
void gotoxy(int Wide,int High) //Wide表示列,0為***列,High表示行,0為***行
- {
- COORD loc;
- loc.X=Wide;
- loc.Y=High;
- SetConsoleCursorPosition(hStdout, loc);
- }
Windows控制臺光標的控制主要是利用代碼來實現(xiàn)的,讀者對其代碼熟練的掌握則可熟練的控制光標。
【編輯推薦】