2015-01-17 6 views
-3

В настоящее время я испытываю ошибку с моей программой.
Моя программа имеет два прямоугольника, каждый из которых окружен групповым ящиком.
В настоящее время я пытаюсь разместить два текста в каждом из них.
У меня уже есть текст в первом прямоугольнике - отлично (с DrawText()).
Если я пытаюсь отобразить текст во втором прямоугольнике (также с DrawText()), текст не отображается.
Вот код, я использую:
C++ - два раза 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); 

К сожалению, я понятия не имею, почему текст не отображается, как ожидалось.
У кого-нибудь из вас есть предложение, почему это не работает?

+0

Проверьте, есть ли у вас ошибки. Также почему вы вызываете 'FindWindow()' в свой 'EndPaint()'? Это не гарантирует возвращения того же окна, о котором вы думаете (если какое-либо окно) ... и вы знаете «hwnd», который вы передали «BeginPaint()»; просто используйте его. – andlabs

+0

@andlabs Спасибо за ваше продвижение, я изменю это. – Daniel

ответ

1

[РЕШЕНИЕ]
Мне удалось выяснить, в чем проблема.
Не отображается во фрагменте, я опубликовал сначала, но координаты, которые я установил для прямоугольников, были неправильными.
К сожалению, я не знал, что все значения являются координатами.

0

Единственная разница между двумя вызовами - это RECT, которые вы передаете. Очевидный вывод состоит в том, что вы неправильно инициализировали один из прямоугольников.

Прежде чем позвонить EndPaint, вы должны восстановить исходный шрифт. И звонок FindWindow должен быть удален. Проход hwnd. Наконец, ваш код вообще не выполняет проверку ошибок. Это всегда неосмотрительно.

Смежные вопросы