Как сделать при помощи MFC бегущую строку?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 25.11.16 06:05
Оценка:
Как сделать при помощи MFC (Visual C++ 2012) бегущую строку?

То есть есть текст, сперва он отображается пустой строкой, затем появляется строка из одного символа-- . (символ точки), потом появляется строка из двух символов точки -- .. , после этого появляется строка из трёх символов точки -- ... , затем опять появляется пустая строка и т.д.
Как это реализовать?
1613 г. = 2024 г.
Re: Как сделать при помощи MFC бегущую строку?
От: uzhas Ниоткуда  
Дата: 25.11.16 08:42
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Как это реализовать?


сложить
Автор: RussianFellow
Дата: 23.11.16
пару векторов, а затем быстро отсортировать
Автор: RussianFellow
Дата: 23.11.16
Re: Как сделать при помощи MFC бегущую строку?
От: Serpuh фотомер.рф
Дата: 25.11.16 09:52
Оценка:
Обновлять строку по таймеру.
Re[2]: Как сделать при помощи MFC бегущую строку?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 25.11.16 10:58
Оценка:
Здравствуйте, Serpuh, Вы писали:

S>Обновлять строку по таймеру.


Это нужно поток (класс CWinThread) использовать?
1613 г. = 2024 г.
Re: Как сделать при помощи MFC бегущую строку?
От: ZloeBablo Германия  
Дата: 25.11.16 11:03
Оценка: +2
RF>Как это реализовать?

если я правильно помню... давно же это было... ты можешь просто вызвать win api SetTimer и потом просто ловить сообщения WM_TIMER в OnTimer. и делай со своей строкой что хочешь...
Re: Как сделать при помощи MFC бегущую строку?
От: Кодт Россия  
Дата: 26.11.16 18:25
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>То есть есть текст, сперва он отображается пустой строкой, затем появляется строка из одного символа-- . (символ точки), потом появляется строка из двух символов точки -- .. , после этого появляется строка из трёх символов точки -- ... , затем опять появляется пустая строка и т.д.

RF>Как это реализовать?

Самое простое — это взять готовый контрол HTML (CWebBrowser2), и сунуть туда текст с бегущей строкой — тэг <marquee>, если поддерживается ещё, либо стиль animation

Самое корявое — взять статический текст (CStatic) и по таймеру (OnTimer) загружать туда разные кусочки текста.

Наконец, самое аккуратное — сделать свой класс окна (можно субклассироваться от CStatic), реализовать там OnPaint, в котором рисовать текст с произвольным смещением. А смещение менять таймером. А таймер завести прямо в этом контроле или в диалоге, как выше со статиком.

Если заморочиться с субпиксельным сглаживанием и всякими красивостями типа размыливания краёв текста — это придётся уже колдовать с OpenGL или DirectX. Поэтому не советую сейчас, но как перспективу обозначаю.
Перекуём баги на фичи!
Re[2]: Как сделать при помощи MFC бегущую строку?
От: aloch Россия  
Дата: 27.11.16 08:55
Оценка:
Здравствуйте, Кодт, Вы писали:


К>Если заморочиться с субпиксельным сглаживанием и всякими красивостями типа размыливания краёв текста — это придётся уже колдовать с OpenGL или DirectX. Поэтому не советую сейчас, но как перспективу обозначаю.


Дожили. Бегущая строка на OpenGL. Gdi+ уже разучился сглаживание делать?


Re[3]: Как сделать при помощи MFC бегущую строку?
От: Кодт Россия  
Дата: 27.11.16 19:10
Оценка:
Здравствуйте, aloch, Вы писали:

A>Дожили. Бегущая строка на OpenGL. Gdi+ уже разучился сглаживание делать?


Ну или GDI+... Я ж не знаю объём красивостей, которые хочет автор. Уезжание в дымчатую перспективу там, натягивание на глобус. Потенциально всё это возможно, но за рамками базового WinAPI.
Перекуём баги на фичи!
Re[3]: Как сделать при помощи MFC бегущую строку?
От: SkyKnight Швейцария https://github.com/dmitrigrigoriev/
Дата: 02.12.16 21:38
Оценка: +1
Здравствуйте, aloch, Вы писали:

A>Дожили. Бегущая строка на OpenGL. Gdi+ уже разучился сглаживание делать?

GDI+ это дикие тормоза.
github.com/dmitrigrigoriev/
Re[4]: Как сделать при помощи MFC бегущую строку?
От: flаt  
Дата: 06.12.16 12:52
Оценка:
Здравствуйте, SkyKnight, Вы писали:

SK>GDI+ это дикие тормоза.


Тормоза чего? И по сравнению с чем?
Re[5]: Как сделать при помощи MFC бегущую строку?
От: SkyKnight Швейцария https://github.com/dmitrigrigoriev/
Дата: 08.12.16 16:21
Оценка:
Здравствуйте, flаt, Вы писали:

F>Тормоза чего?

Тормоза рисования.

F> И по сравнению с чем?

По сравнению с OpenGL или DirectX
github.com/dmitrigrigoriev/
Re[6]: Как сделать при помощи MFC бегущую строку?
От: flаt  
Дата: 08.12.16 18:19
Оценка:
Здравствуйте, SkyKnight, Вы писали:

F>> И по сравнению с чем?

SK>По сравнению с OpenGL или DirectX

Тёплое с мягким. Таки тащить и инициализировать 3D для бегущей строки — жуткий оверхед, а для сабжа производительности GDI (и GDI+) хватит с головой.
Re: Как сделать при помощи MFC бегущую строку?
От: VladFein США  
Дата: 16.12.16 18:29
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>То есть есть текст, сперва он отображается пустой строкой, затем появляется строка из одного символа-- . (символ точки), потом появляется строка из двух символов точки -- .. , после этого появляется строка из трёх символов точки -- ... , затем опять появляется пустая строка и т.д.

RF>Как это реализовать?

Для плавного движения (без дергания) текстовый контрол (static) не годится.
Нужна правильная анимация.
Весь текст предварительно отрисовывается в bitmap.
Запускается таймер с коротким интервалом.
В WM_TIMER вычисляете интервал времени с начала анимации и текущее смещение строки.
Выводите тот bitmap на экран одним-двумя BitBlt().
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.