|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.11.2022, 15:19 | #41 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Мне показалось, что: "всплывает" - это из под нижней границы, а слева направо - это посимвольно с левого к правому, а не строка целиком. Если надо просто бегущую строку, тогда надо изменять координату x, а не y как у меня в примере.
|
29.11.2022, 06:16 | #42 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
GetTextExtentPoint32 вычисляет ширину и высоту заданной строки текста.
lpSize [out] Указатель на структуру SIZE, которая принимает размеры строки, в логических единицах измерения. В смысле отрицательные?! Имеете ввиду приращение или что, если нет, а имеется ввиду значения в переменной SIZE, то нет, они положительные. Текст может бы разной длины исходя из этого я подумал, что так будет более универсально. Может быть какие-нибудь свойства... |
29.11.2022, 06:18 | #43 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Посимвольно, да, но текст так же должен выплывать слева направо, не снизу вверх, но смысл тот же. Координату 'x' изменяю.
Последний раз редактировалось apofioz; 29.11.2022 в 07:46. |
29.11.2022, 07:59 | #44 | ||
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
Цитата:
|
||
29.11.2022, 08:13 | #45 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Если BitBlt() вызывать так:
BitBlt(hdc, iXStart, iYStart+pos, sz.cx, sz.cy, memDC, 0, 0, SRCCOPY); То на выходе получается, так: Animationtext.zip Такое ощущение, что выводится один текст, не две разные строки, а одна, это очень плохой результат. К тому же текст, как не трудно увидеть не выползает из-за границы, а сразу появляется на границе и не уползает за верхнюю граница, а просто, начинает цикл заново т.е. вывод на этом заканчивается. Последний раз редактировалось apofioz; 29.11.2022 в 08:16. |
29.11.2022, 09:38 | #46 | ||
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
Вот об этом и спрашивал. Цитата:
Только iXStart и iYStart это координаты на hdc (в окне), а pos это координаты на bitmap. Вы ничего не добьетесь этим. |
||
29.11.2022, 10:11 | #47 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Когда я их проверял были положительными.
Цитата:
p.s. Может быть при вычислениях pos большинство значений положительны и исходя из этого строка записывается в контекст памяти всегда в одно и тоже место. Я посмотрел результаты вычислений этой переменной и, так и есть, а судя по условию min(pos, 0) получается постоянно нуль. Я имею ввиду этот код: int pos = 5 + 2 * sz.cy - (GetTickCount() - StartTime) / 20; 36, 36, 36, 35, 35, 34, 34, 34, 34 ... 2, 2, 2, 1, 1, 0, 0, -1, -1, 36... - Вы так и хотели или всё же нет? Последний раз редактировалось apofioz; 29.11.2022 в 13:03. |
|
29.11.2022, 13:11 | #48 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
И так, как я и полагал дело в вычислении переменной pos чуть подправил код и вот что получилось на данный момент:
AnimationText.zip Осталось сделать это более качественно т.е. что бы каждая строка была отдельно т.е. чтобы при взгляде было очевидно, что это строки для разных обозначений, а не одна строка текста. Ну и нужно усовершенствовать вычисление pos; Код:
|
29.11.2022, 14:12 | #49 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Вот *.exe.
Ex3_25.rar |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо написать "таймер", который будет запускаться при нажатии кнопки "Start", приостанавливаться на "Pause", и сбрасываться на "Reset" | billiejean78 | JavaScript, Ajax | 1 | 03.09.2021 08:58 |
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" | Бахтиёр1916 | Windows | 1 | 05.04.2017 12:53 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Поиск компонента GroupBox с эффектом "спойлер" | XerSon | Компоненты Delphi | 1 | 24.03.2011 09:59 |