Надчеркивание

Discussion in 'WASM.BEGINNERS' started by JAPH, Jul 20, 2007.

  1. JAPH

    JAPH New Member

    Blog Posts:
    0
    Как отобразить текст с надчёркнутыми символами (например, формулы де-Моргана)
    1. При отрисовке по WM_PAINT
    2. В rich edit (тут бы ещё поменять цвет фона под такими символами...)
     
  2. n0name

    n0name New Member

    Blog Posts:
    0
    1.
    отдельно рисуй линию.
    Тебе же известно rect, где отрисован текст, вот и закрась верхнюю грань.
    2.
    хз.
     
  3. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    JAPH
    Посмотри в сторону юникода, возможно, есть какие-то диакритические знаки.
     
  4. n0name

    n0name New Member

    Blog Posts:
    0
    IceStudent
    я так понимаю ему нужно вида
    ___
    A&B

    Сомневаюсь что найдет такое в юникоде.
     
  5. JAPH

    JAPH New Member

    Blog Posts:
    0
    n0name, а ничего получше нету? Вроде амперсанда в DrawText?
    Что касается многих символов под одной чертой, так, может, над каждым символом отдельно прорисовать линию, если, конечно есть простой вариант надчёркивания, и посмотреть, что получится, вдруг подойдет; в случае же ручного рисования линии, разумеется, лучше охватить всех нуждающихся :)
     
  6. JAPH

    JAPH New Member

    Blog Posts:
    0
    IceStudent Вроде наткнулся - черта над буквой U+0304. aka макрон :)
     
  7. twgt

    twgt New Member

    Blog Posts:
    0
    Получи размер шрифта и рисуй линию :)
     
  8. JAPH

    JAPH New Member

    Blog Posts:
    0
    twgt, см. пост #2. Там это и имелось ввиду.

    IceStudent
    Нашёл! { JavaScript рулез :) } Символ с кодом 773 очень даже подходит. Кстати, соседние надчёркивания сливаются! То, что надо!
    Теперь need sample:
    1. (программа-минимум) как объявлять unicode-строку и выводить её {DrawTextW? у меня не получилось :dntknw:}
    2. (программа-максимум) как засунуть unicode в richedit
     
  9. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Язык? Асм, си?
    Code (Text):
    1. wszStr dw 305h, 'T', 305h, 'Z', 0
    2. wchar_t* wszStr = L"\x0305A\x0305Z";
    SetWindowTextW, EM_STREAMIN (SF_UNICODE).
     
  10. JAPH

    JAPH New Member

    Blog Posts:
    0
    Язык асм (MASM).
    DrawTextW признаёт надчёркивание при установке шрифта Tahoma. Courier всё время квадратики рисует. А мне моноширинный нужон... Опера прекрасно рисует <FONT FACE="courier New">a& #773;</FONT>. Как?!
    IceStudent
    Счас пойду пробовать, может, чё получится.. :)
     
  11. JAPH

    JAPH New Member

    Blog Posts:
    0
    SF_UNICODE = ? И где и как? Вместе с SF_TEXT при EM_STREAMIN?

    Можно пример SetWindowTextW? (при WM_SETTEXT надо SendMessageW, да?)
    А то
    Code (Text):
    1. myString dw 31h, 305h, 31h, 0
    2. ...
    3. invoke SetWindowTextW, hwndRichEdit, offset myString
    проявляется в виде 1?1.
     
  12. JAPH

    JAPH New Member

    Blog Posts:
    0
    Да, и для чего нужны _wPad?
     
  13. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Грузи Riched20.dll, 32 - это версия 1.0, она с юникодом не работает.
     
  14. JAPH

    JAPH New Member

    Blog Posts:
    0
    IceStudent
    Ничё не изменилось :dntknw: Как было 1?1, так и осталось.
    И, всё же, чему равно SF_UNICODE?
     
  15. JAPH

    JAPH New Member

    Blog Posts:
    0
    SF_UNICODE = 10h; EM_STREAMIN (SF_TEXT or SF_UNICODE) работает.

    Осталось добиться отображения юникода по WM_SETTEXT. ?