вывод кирилицы в GDI+

Тема в разделе "WASM.WIN32", создана пользователем zStorm, 6 мар 2006.

  1. zStorm

    zStorm New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2005
    Сообщения:
    44
    Адрес:
    Ukraine
    Приветствую всех! (хотел пооригинальней, а вышло как всегда :))



    Почему GDI+ не выводит кириллицу? Как с етим боротьса?


    Код (Text):
    1. Graphics graphics(hdc)
    2.  
    3. graphics.DrawString(string, -1, &font, rectF, &stringFormat, &solidBrush);




    Если в string есть кириллические символы, то выводятьса квадратики. Посоветуйте что-нибедь pls.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    zStorm

    Шрифт, используемый при выводе, содержит начертания символов кириллицы?
     
  3. zStorm

    zStorm New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2005
    Сообщения:
    44
    Адрес:
    Ukraine
    Мммм...

    Не знаю :dntknw: Перебрал все шрифты в системе, ничего не помогло



    Кстати очень звиняюсь за запоздалый ответ, нета у меня долго не было :dntknw:
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    zStorm

    Я попробовал код с Graphics::lol: rawString Method (GDI+) (разумеется заменив на руские буквы), выводит нормально.



    Твоя программа большая, можешь приаттачить?



    ps у меня wxpsp2ru
     
  5. zStorm

    zStorm New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2005
    Сообщения:
    44
    Адрес:
    Ukraine
    Млин, ето не GDI+, ето я ламер :)

    Вместо WCHAR совал туда простой char, забыл про UNICODE.

    Кстати, а что нужно сделать чтобы перевести char в UNICODE? По своим наблюдениям в дампере, ка я понял, после каждого символа должна стоять цифра 04h, и от каждого киррилического символа нужно отнять 0bh. Хм, интересно почеиу именно ето число?
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine


    Добавить байт 0x4 ко всем символам, кроме пробелов, запятых и т.д. В винде, конечно, есть функции для преобразования различных кодировок, но можно и самому написать.





    Так решили американцы, когда принимали спецификацию юникода.
     
  7. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    MultiByteToWideChar