C++ - two times DrawText()

C++ - two times DrawText()

本文关键字:DrawText times two C++      更新时间:2023-10-16

我的程序当前遇到错误。
我的程序有两个矩形,每个矩形都被一个分组框包围。
目前,我正在尝试在每个文本中放置两个位置文本。
我已经在第一个矩形中有文本 - 很好(带DrawText())。
如果我尝试在第二个矩形中显示文本(也带有DrawText()),则文本不会显示。
这是我使用的代码:

hdc = BeginPaint(hwnd, &ps);
SelectObject(hdc, font);
DrawText(hdc, lpcwstr, wcslen(lpcwstr), &rect, DT_LEFT);
DrawText(hdc, lpcwstr, wcslen(lpcwstr), &rect_2, DT_LEFT);
EndPaint(FindWindow(NULL, L"Statistik (seit dem 01.01.2015)"), &ps);

不幸的是,我不知道为什么文本没有按预期显示。
你们中有人有建议为什么这不起作用吗?

[解决方案]
我能够弄清楚问题是什么。
在代码段中不可见,我最初发布,但我为矩形设置的坐标是错误的。
可悲的是,我不知道所有值都是坐标。

这两个调用之间的唯一区别是您传递的RECT。显而易见的结论是,您错误地初始化了其中一个矩形。

在调用 EndPaint 之前,您应该恢复原始字体。并且应该删除对FindWindow的调用。通过hwnd .最后,您的代码根本不执行错误检查。这总是不谨慎的。