buildscreen.cpp

来自「MUD文字游戏开发」· C++ 代码 · 共 64 行

CPP
64
字号
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include "BuildScreen.h"
#include "GlobalDef.h"
#include "Input.h"

CBuildScreen::CBuildScreen(void)
{
	m_hOut = GetStdHandle(STD_OUTPUT_HANDLE);
}

CBuildScreen::~CBuildScreen(void)
{
	CloseHandle(m_hOut);
}

//创建一下新的控制台
void CBuildScreen::CreateNewScreen()
{
	SetScreenSize();
	SetScreenTitle();
	ClearScreen();
	//system("cls");
	//_getch();
}

//重新设置控制台大小
void CBuildScreen::SetScreenSize()
{
	COORD POS = {SCREENWIDTH, SCREENHEIGHT};
	SetConsoleScreenBufferSize(CInput::getHout(),POS); // 重新设置缓冲区大小
	SMALL_RECT rc = {0,0, SCREENWIDTH-1, SCREENHEIGHT-1}; // 重置窗口位置和大小
	SetConsoleWindowInfo(CInput::getHout(),true ,&rc);
	//设置控制台属性,背景是蓝色,文本颜色是黄色
	WORD att = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE;
	SetConsoleTextAttribute(CInput::getHout(), att);
	CONSOLE_CURSOR_INFO cci = { 25, FALSE };
	SetConsoleCursorInfo(CInput::getHout(), &cci); // 去除光标
}

//设置控制台标题
void CBuildScreen::SetScreenTitle()
{
	//*--------------设置标题----------*/
	TCHAR szNewTitle[MAX_PATH];
	strcpy_s(szNewTitle,"WORD GAME - 冰火之旅");
	if( !SetConsoleTitle(szNewTitle) )
	{
		printf("SetConsoleTitle failed (%d)\n", GetLastError());
	}
}

void CBuildScreen::ClearScreen()
{
	CONSOLE_SCREEN_BUFFER_INFO bInfo;
	GetConsoleScreenBufferInfo( CInput::getHout(), &bInfo ); 
	COORD home = {0, 0};
	unsigned long size = bInfo.dwSize.X * bInfo.dwSize.Y;
	FillConsoleOutputAttribute(CInput::getHout(), bInfo.wAttributes, size, home, NULL);
	FillConsoleOutputCharacter(CInput::getHout(),' ', size, home, NULL);

	//SetConsoleCursorPosition(CInput::getHout(), home);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?