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

Discussion in 'WASM.WIN32' started by _DEN_, Feb 23, 2007.

  1. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Есть такие шрифты (например идущий с MS Office 2007 "Edwardian Script ITC"), у которых буквы "заезжают" друг на друга. Например чтобы сделать нормальный рукописеый шрифт (см. аттач).

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

    rmn Well-Known Member

    Blog Posts:
    0
    Joined:
    Nov 23, 2004
    Messages:
    2,347
    GetTextExtentPoint32?
     
  3. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    rmn

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

    roman_pro New Member

    Blog Posts:
    0
    Joined:
    Feb 9, 2007
    Messages:
    291
    GetTextMetrics ?
     
  5. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    roman_pro

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

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Самый похожий на правду - GetGlyphOutline с параметром GGO_METRICS. Только как-то не фкурил значения, которые мне возвращаются.

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

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Вобщем сделал простым построчным сканированием, все работает, но естественно, жутко тормозит. Поэтому вопрос остается открытым :dntknw:
     
  8. AsmGuru62

    AsmGuru62 Member

    Blog Posts:
    0
    Joined:
    Sep 12, 2002
    Messages:
    689
    Location:
    Toronto