【C语言】控制台窗口图形界面编程(三)窗口相关设置

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);

官方参考网址:https://docs.microsoft.com/en-us/windows/console/setconsolewindowinfo

你可能感兴趣的:(C和C++)