00. 目錄
文章目錄
-
- 00. 目錄
- 01. GetConsoleTitle函數
- 02. SetConsoleTitle函數
- 03. SetConsoleScreenBufferSize函數
- 04. SetConsoleWindowInfo函數
01. GetConsoleTitle函數
擷取目前控制台标題
函數聲明
DWORD WINAPI GetConsoleTitle(
_Out_ LPTSTR lpConsoleTitle,
_In_ DWORD nSize
);
功能:
擷取目前控制台标題
參數:
lpConsoleTitle 指向緩沖區的指針,該緩沖區接收包含标題的以null結尾的字元串。如果緩沖區太小而無法存儲标題,則該函數将存儲符合緩沖區的标題字元,以空終止符結束。
nSize 指向的緩沖區大小,以字元為機關。
傳回值:
如果函數成功,則傳回值是控制台視窗标題的長度(以字元為機關)。
如果函數失敗,則傳回值為零,GetLastError傳回錯誤代碼。
參考代碼:
char buf[255] = { 0 };
//擷取目前視窗标題
GetConsoleTitle(buf, 255);
printf("目前視窗标題為: %s\n", buf);
官方參考網址:https://docs.microsoft.com/en-us/windows/console/getconsoletitle
02. SetConsoleTitle函數
設定目前控制台視窗标題
函數聲明:
BOOL WINAPI SetConsoleTitle(
_In_ LPCTSTR lpConsoleTitle
);
功能:
設定目前控制台視窗标題
參數:
lpConsoleTitle 要在控制台視窗的标題欄中顯示的字元串。總大小必須小于64K。
傳回值:
如果函數成功,則傳回值為非零值。
如果函數失敗,則傳回值為零。要擷取擴充錯誤資訊,請調用GetLastError。
注意: 當程序終止時,系統将恢複原始控制台标題。
參考代碼:
SetConsoleTitle("神馬程式員");
//擷取目前視窗标題
GetConsoleTitle(buf, 255);
printf("目前視窗标題為: %s\n", buf);
官方參考網址:https://docs.microsoft.com/en-us/windows/console/setconsoletitle
03. SetConsoleScreenBufferSize函數
設定指定控制台螢幕緩沖區的大小。
函數聲明:
BOOL WINAPI SetConsoleScreenBufferSize(
_In_ HANDLE hConsoleOutput,
_In_ COORD dwSize
);
功能:
設定指定控制台螢幕緩沖區的大小。
參數:
hConsoleOutput 控制台螢幕緩沖區的句柄。句柄必須具有GENERIC_READ通路權限。
dwSize 指定控制台螢幕緩沖區的新的大小,在字元行和列。指定的寬度和高度不能小于控制台螢幕緩沖區視窗的寬度和高度。指定的尺寸也不能小于系統允許的最小尺寸。此最小值取決于控制台的目前字型大小(由使用者選擇)以及GetSystemMetrics函數傳回的SM_CXMIN和SM_CYMIN值。
傳回值:
如果函數成功,則傳回值為非零值。
如果函數失敗,則傳回值為零。要擷取擴充錯誤資訊,請調用GetLastError。
參考代碼:
COORD size = {80, 80};
//擷取标準輸出句柄
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
//設定控制台緩沖區大小
SetConsoleScreenBufferSize(hOut, size);
官方參考網址:https://docs.microsoft.com/en-us/windows/console/setconsolescreenbuffersize
04. SetConsoleWindowInfo函數
設定控制台螢幕緩沖區視窗的目前大小和位置。
函數聲明:
BOOL WINAPI SetConsoleWindowInfo(
_In_ HANDLE hConsoleOutput,
_In_ BOOL bAbsolute,
_In_ const SMALL_RECT *lpConsoleWindow
);
功能:
設定控制台螢幕緩沖區視窗的目前大小和位置。
參數:
hConsoleOutput 控制台螢幕緩沖區的句柄。句柄必須具有GENERIC_READ通路權限。
bAbsolute 如果此參數為TRUE,則坐标指定視窗的新左上角和右下角。如果為FALSE,則坐标相對于目前視窗角坐标。
lpConsoleWindow 指向SMALL_RECT結構的指針,該結構指定視窗的新左上角和右下角。
傳回值:
如果函數成功,則傳回值為非零值。
如果函數失敗,則傳回值為零。要擷取擴充錯誤資訊,請調用GetLastError。
參考代碼:
COORD size = {40, 20};
SetConsoleScreenBufferSize(hOut, size);
SMALL_RECT rect = { 0, 0, 40 - 1, 20 - 1 };
SetConsoleWindowInfo(hOut, 1, &rect);