Windows环境下 全屏显示某个字符串
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// 获取完整客户区尺寸
RECT rc;
GetClientRect(hWnd, &rc);
// 全屏时:整个窗口作为显示区域
RECT displayRect = rc;
// 纯黑背景
FillRect(hdc, &displayRect, (HBRUSH) GetStockObject(BLACK_BRUSH));
// 智能字体大小计算(基于显示区域高度)
int fontSize = std::min(displayRect.bottom, displayRect.right / 3);
// 创建自适应字体
HFONT hFont = CreateFont(
fontSize, 0, 0, 0,
FW_BOLD,
FALSE, FALSE, FALSE,
DEFAULT_CHARSET,
OUT_OUTLINE_PRECIS,
CLIP_DEFAULT_PRECIS,
CLEARTYPE_QUALITY,
VARIABLE_PITCH,
L"宋体" // 改用更清晰的字体
);
SelectObject(hdc, hFont);
// 文字居中设置
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc, g_state.color);
// 格式化时间文本
wchar_t timeStr[20];
swprintf_s(timeStr, L"测试字符串");
// 智能调整绘制区域(增加边距避免贴边)
displayRect.left += 20;
displayRect.right -= 20;
displayRect.top += 20;
displayRect.bottom -= 20;
// 绘制文本(自动换行确保完全可见)
DrawTextW(hdc, timeStr, -1, &displayRect,
DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_NOCLIP);
DeleteObject(hFont);
EndPaint(hWnd, &ps);
break;
}
以WIN32 程序,C++语言为例。
这样就会全屏显示一个字符串,背景色为黑色。Windows环境下,全屏显示某个字符串。
效果如图