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