DrawText: Определение размера символа

Тема в разделе "WASM.WIN32", создана пользователем _DEN_, 23 фев 2007.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Есть такие шрифты (например идущий с MS Office 2007 "Edwardian Script ITC"), у которых буквы "заезжают" друг на друга. Например чтобы сделать нормальный рукописеый шрифт (см. аттач).

    Мне надо определить размер заданного символа. Я юзаю DrawText с параметром DT_CALCRECT. Но этот вызов возвращает мне не размеры рисунка, а размеры отступов, которые делаются при рендере надписи. Тоесть, фактически у каждой буквы существует две размерности - размеры отступов при печати, и размеры bounding rectangle его растрового изображения. DrawText дает первое. Как узнать второе?
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    GetTextExtentPoint32?
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    rmn

    Не-а, GetTextExtentPoint32 тоже возвращает размеры отступов :dntknw:
     
  4. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    GetTextMetrics ?
     
  5. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    roman_pro

    Та блин, я уже весь бубен обстучал, танцуя вокруг Get... всего что касается шрифтов. GetTextMetrics дает средний и максимальный размер. А мне надо для конкретного символа :dntknw:
     
  6. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Самый похожий на правду - GetGlyphOutline с параметром GGO_METRICS. Только как-то не фкурил значения, которые мне возвращаются.

    Попутно новый вопрос. В каком виде получаются данные при вызове GetGlyphOutline с параметром GGO_BITMAP, которые уходят в lpvBuffer?
     
  7. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Вобщем сделал простым построчным сканированием, все работает, но естественно, жутко тормозит. Поэтому вопрос остается открытым :dntknw:
     
  8. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto