|
|
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Рисую текст функцией TextOut(). Когда угол наклона (надписи и символов) равен нулю, получаю один результат. Как только угол становится ненулевым (хотя бы 1 десятая градуса), а все остальные параметры остаются прежними, надпись "проваливается" вниз (см. приложенный рисунок, горизонтальная надпись красная). Такое впечатление, что для горизонтальной надписи учитываются под/над символьные элементы, а для наклонной нет. Кто виноват, что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 15:55 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Ой ВэйРисую текст функцией TextOut(). Когда угол наклона (надписи и символов) равен нулю, получаю один результат. Как только угол становится ненулевым (хотя бы 1 десятая градуса), а все остальные параметры остаются прежними, надпись "проваливается" вниз (см. приложенный рисунок, горизонтальная надпись красная). Такое впечатление, что для горизонтальной надписи учитываются под/над символьные элементы, а для наклонной нет. Кто виноват, что делать? код в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 16:02 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Если просто кусок кода, то пожалуйста (некоторые переменные заменены на значения): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. А если работающий проект, то тоже можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 16:22 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Оказывается, под Windows 98 этого эффекта нет (у меня 2000). Под XP есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 19:08 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
под Visual Studio 6.0 проще уже некуда, см. CTextOutView::OnDraw(), TextOutView.cpp. или это глюк GDI (NT only), или мой Неужели неинтересно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:38 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Ой Вэйили это глюк GDI (NT only), или мой Неужели неинтересно? Интересно, конечно. Но, наверное,мало кто это использовал. Могу только предположить: может в 2000 и XP используется какая-нибудь реперная точка, вокруг которой крутится изображение? Ну, там начальный пиксел надо будет установить в центр надписи (например как при ломаных рисовании линий). И, допустим, эта точка используется в 98-м только для линий, а в более новых версиях учитывается еще и для надписей. Попробуй покапать в этом направлении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 15:56 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Akh Попробуй покопать в этом направлении С удовольствием, но задай хоть какую-нибудь реперную точку :) Где она указывается при рисовании линий? (имя хоть какой-нибудь функции, например) Вообще-то точка, вокруг которой вращается надпись, согласно документации задаётся функцией SetTextAlign, и это как правило один из углов надписи (а никак не произвольная точка). В любом случае спасибо за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 16:52 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
попробуй лучше не TextOut, а DrawText ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 17:12 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Cerebrumпопробуй лучше не TextOut, а DrawText Не лучше: The DrawText function supports only fonts whose escapement and orientation are both zero. (MSDN) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 17:46 |
|
||
|
Рисование текста под наклоном
|
|||
|---|---|---|---|
|
#18+
Хотя не совсем понятно, в чём заключается это "supports only". Клипует она точно без учёта поворота, а рисовать вроде может. Получился такой рисунок (красный это TextOut без поворота, синий — TextOut с поворотом, зелёный — DrawText с поворотом): DrawText вызывал два раза, с вычислением размеров рамки и без: UINT nFormat = DT_SINGLELINE | DT_CENTER | DT_VCENTER | DT_NOCLIP; pDC->DrawText(text,&rect,nFormat | DT_CALCRECT); pDC->DrawText(text,&rect,nFormat); Т.е. DrawText лучше :) Нашёл похожий вопрос на другом форуме, ответов тоже нет: http://www.rsdn.ru/Forum/?mid=837041 Там автор обращает внимание, что проблема только со шрифтами OpenType, не просто TrueType. У меня это наблюдение не подтверждается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 18:07 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33593629&tid=2031803]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 345ms |

| 0 / 0 |
