Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,677
1

Не работает DrawText()

06.10.2010, 04:32. Показов 2369. Ответов 4
Метки нет (Все метки)

Здравствуйте! Может мне хоть кто-то подскажет почему данная функция ничего не рисует в окне (нужно, чтоб она вывела текст по центру рабочей области)?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    case WM_PAINT:
        {
        RECT rcClient, txtPos;
        hdc = BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rcClient);
        SIZE sz;
        GetTextExtentPoint32(hdc,"АБВ\nгде",strlen("АБВ\nгде"),&sz);
        SetRect(&txtPos,0,0,200,200);
        txtPos.top = rcClient.bottom/2 - sz.cy/2;
        txtPos.bottom = rcClient.bottom/2 + sz.cy/2;
        txtPos.left = rcClient.right/2 - sz.cx/2;
        txtPos.right = rcClient.right/2 + sz.cx/2;
        DrawText(hdc,"АБВ\nгде",strlen("АБВ\nгде"),&txtPos,DT_CALCRECT);
        EndPaint(hWnd, &ps);
        }
        break;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2010, 04:32
Ответы с готовыми решениями:

DrawText
как при пощи DrawText сделать надпись в окне , если можно простенький исходник. Заранее всем...

DrawText, TextOut
i - глобальная case WM_PAINT: { i++; wchar_t s; hdc=BeginPaint(hwnd,&ps);...

Метод DrawText
Привет, дайте пожалуйста пример использования метода DrawText под DX9. Есть инициализация...

ANSI и DrawText
Вопрос, видимо, простой, но я пока не могу разобраться, что не так... Поиски по интернету решения...

4
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 540
06.10.2010, 21:40 2
проблема в строке 13: флаг DT_CALCRECT заставляет только высчитать нужный размер, но не отображает текст.
Кроме того: 1) строка 7 дублируется строками 9-12; 2) если нужно просто вывести текст по центу экрана, до достаточно указать нужные флаги при выводе в ClientRect 3) Обычно используют какое-то перо, фон и шрифт.
1
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,677
07.10.2010, 05:00  [ТС] 3
Спасибо!
0) А какой флаг надо использовать?
1) Эту строку я уже добавил позже.
2, 3) Можно пример кода?

Добавлено через 57 секунд
Мне нужно будет еще менять цвет текста и его фона
0
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 540
07.10.2010, 12:29 4
1) DT_LEFT (или DT_RIGHT или DT_CENTER) - горизонтальное положение
в комбинации OR ( | ) с
DT_TOP (или DT_BOTTOM или DT_VCENTER) - вертикальное
по остальному, честно говоря, надоело плодить бесконечные повторы на избитую тему. Поиском в Net или справку смотрите - и там и там всего навалом. Даже если нет MSDN, заведите хотя бы справочник по API, благо их тоже предостаточно на любой вкус.
Единственно, для облегчения поисков, добавлю: смотрите функции, начинающиеся с CreateFont, CreatePen и функции SelectObject, DeleteObject
1
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,677
08.10.2010, 03:14  [ТС] 5
Огромное спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2010, 03:14

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не срабатывает DrawText?
Здраствуйте! Помогите розобратся в чем ошибка. Суть проблемы. Виполняется...

DRAWTEXT(DT_CALCRECT)
Доброго времени суток. Пытаюсь создать окно "static" с определённой шириной и высотой, в...

функция DrawText()
Здравствуйте! Помогите пожалуйста, как вывести текст с помощью функции DrawText(), предварительно...

Ошибка в DrawText()
expected primary-expression before ',' token в строчке DrawText(hwnd, str, WORD, &rect,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.