powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Определить координаты текста
5 сообщений из 5, страница 1 из 1
Определить координаты текста
    #35251910
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Питаюсь определить координаты текста в PictureBox-е, чтобы позиционировать на нем TextBox, таким образом, что выведенный в TextBox тот же текст оказался в тех же координатах на экране.

Как не определял высоту текста, и GetTextExtentPoint32 и GetTextMetrics, результата не смог достичь.

где должна сидеть функция,.
GetTextMetrics hDC, tm (или GetTextExtentPoint32 hDC, vText, Len(vText), Pt)
чтобы правильно определить высоту шрифта

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1 . здесь?

        nFont = CreateFontIndirect(Lgf)
        OldFont = SelectObject(hDC, nFont)
        ...
        ‘ 2 . или здесь?
        ...

        DeleteObject SelectObject(hDC, OldFont)

сюда передается hDC то PictureBox-а, то TextBox-а. и питаюсь, для выбранного Font-а определить высоту.

думал что 2-й вариант правильный, но почему-то правильно работает первый, Почему и в чем ошибаюсь?

Спасибо!
...
Рейтинг: 0 / 0
Определить координаты текста
    #35252241
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DrawText или DrawTextEx с параметром DT_CALCRECT меряет текст
...
Рейтинг: 0 / 0
Определить координаты текста
    #35252316
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но DrawText и DrawTextEx самые медленные функции которие рисуют текст.
Ровно на порядок медленнее, чем самому измерять и рисовать с помощью ExtTextOut или TextOut
...
Рейтинг: 0 / 0
Определить координаты текста
    #35252676
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С параметром DT_CALCRECT текст не рисуется
...
Рейтинг: 0 / 0
Определить координаты текста
    #35253848
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знал, что в это время текст не рисуется. Спасибо.

Проверил по всякому,
Код: plaintext
1.
2.
        SetRect RcLmt, TxtLft, TxtTp, TxtLft, TxtTp
        DrawText nDC, St, Len(St), RcLmt, DT_CALCRECT
        ExtTextOut nDC, RcLmt.Left, RcLmt.Top, ByVal  4 &, RcLmt, St, Len(St), ByVal  0 &
в два раза медленнее чем
Код: plaintext
1.
2.
3.
        GetTextMetrics nDC, tm
        GetTextExtentPoint32 nDC, St, Len(St), Pt
        SetRect RcLmt, TxtLft, TxtTp, TxtLft + Pt.x - tm.tmOverhang, TxtTp + Pt.y
        ExtTextOut nDC, RcLmt.Left, RcLmt.Top, ByVal  4 &, RcLmt, St, Len(St), ByVal  0 &

Кстати, ответ на вопрос в топике - правильный вариант 2,
ошибался при заполнении логфонт-а
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Определить координаты текста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]