c/c++控制台闪屏游戏开发(几行代码解决问题)(双缓冲技术)
程序员文章站
2022-07-05 12:35:32
...
防止控制台闪屏语句代码:直接拿来用就好了,不要去专研里面语句的一些基本用法,实在是没有必要
以下代码放到主函数开头部分
/获取默认标准显示缓冲区句柄
HANDLE hOutput;
COORD coord = { 0, 0 };
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
//创建新的缓冲区
HANDLE hOutBuf = CreateConsoleScreenBuffer(
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
CONSOLE_TEXTMODE_BUFFER,
NULL
);
//设置新的缓冲区为活动显示缓冲
SetConsoleActiveScreenBuffer(hOutBuf);
//隐藏两个缓冲区的光标
CONSOLE_CURSOR_INFO cci;
cci.bVisible = 0;
cci.dwSize = 1;
SetConsoleCursorInfo(hOutput, &cci);
SetConsoleCursorInfo(hOutBuf, &cci);
//双缓冲处理显示
DWORD bytes = 0;
char data[3200];
最后两行代码放到主函数末尾(主函数前一个大括号里面)
ReadConsoleOutputCharacterA(hOutput, data, 3200, coord, &bytes);
WriteConsoleOutputCharacterA(hOutBuf, data, 3200, coord, &bytes);