利用Windows API函数,可在控制台Console上进行图形的绘制。
/** 创建绘制环境 */
HDC memDC = GetDC(GetConsoleWindow());
SIZE regionSize;
regionSize.cx = 500;
regionSize.cy = 500;
/** 创建一个字体,其中30是字体大小 */
HFONT hfont = CreateFont(30, 0, 0, 0, FW_THIN, false, false, false,
DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,
DEFAULT_QUALITY, FF_MODERN, _T("微软雅黑"));
SelectObject(memDC, hfont);
RECT imgRect = {0, 0, regionSize.cx, regionSize.cy}; /** 设置为绘图区的宽高 */
SIZE fontPixSize; /** 字符的像素大小 */
/** 将背景填充为灰色 */
FillRect(memDC, &imgRect, (HBRUSH)GetStockObject(GRAY_BRUSH));
wstring str = _T("测试控制台绘图");
/** 得到字符串的像素宽高,可以为任意字符串 */
GetTextExtentPoint32(memDC, str.c_str(), str.length(), &fontPixSize);
SetTextColor(memDC, RGB(0, 0, 255)); /** 设置文本颜色 */
SetBkMode(memDC, TRANSPARENT); /** 设置背景模式 */
/** 计算绘制起始位置 */
TextOut(memDC, 10, 100, str.c_str(), str.length());
std::cout << "Drawing On Console Successfully !" << std::endl;
/** 释放资源 */
DeleteObject((HGDIOBJ)hfont);
DeleteDC(memDC);