gpt4 book ai didi

C++ WinAPI TextOut() 更新文本

转载 作者:可可西里 更新时间:2023-11-01 11:18:51 24 4
gpt4 key购买 nike

我正在使用 WinAPI 创建一个 Windows 应用程序。在处理窗口的 WM_PAINT 消息时,我正在使用 TextOut() 函数向用户显示更新的文本。

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hwnd, &ps);
SelectObject(hdc, hfDefault);

// display the user data in the window
TextOut(hdc,10,70, "Points: 0", 9);
TextOut(hdc,10,85, "Level: 0", 8);

// ...
EndPaint(hwnd, &ps);
}
break;

如何在调用函数后更改 TextOut() 打印的文本以及确定打印文本长度的最后一个参数?

我发现的关于使用 TextOut() 的一切都是关于文本字体的。

最佳答案

也许是这样的......

// I'll assume hwnd is global
void OnSomeActionToRefreshValues()
{
HDC hdc = ::GetDc(hwnd);
DrawValues(hdc, 88, 99);
ReleaseDC(hdc);
}

void DrawValues(HDC hdc, int points, int level)
{
// Might need a rectangle here to overwrite old text
SelectObject(hdc, hfDefault); // I assume hfDefault is global
TCHAR text[256];
swprintf_s(text, 256, L"Points: %d", points);
TextOut(hdc, 10, 70, text, wcslen(text));
swprintf_s(text, 256, L"Level: %d", level);
TextOut(hdc, 10, 85, text, wcslen(text));
}

在你赢得过程中:

case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hwnd,&ps);
DrawValues(hdc, 88, 99);
EndPaint(hwnd,&ps);
break;

关于C++ WinAPI TextOut() 更新文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22050749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com