Кодовые страницы, проблемы с выводом текста

Тема в разделе "WASM.WIN32", создана пользователем lomik, 20 июл 2010.

  1. lomik

    lomik New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2010
    Сообщения:
    45
    После установки хрюши первым делом делаю настройку, в частности, меняю кодовую страницу 1251 на 1252, это вроде бы позволяет избавиться от проблем с кодировками в некоторых приложениях.
    Это так и оказалось - проблем никогда не было, например в 5-м уроке, если в буфере русский текст , всё было нормально.

    И вот, начал писать програмку - выделяю память, создаю файл, открываю текстовый файл, вывожу с помощью DrawText. Всё вроде бы хорошо.

    Отправляю знакомому, говорит крякозяблы, я ему - сохрани текст как кириллицу уиндоуз, он мне - не помогает, то же самое.

    Вспоминаю, что у меня 1252, ставлю 1251 - писец, DrawText упорно выводит текст как уникодовский.

    Проверяю что в системе - AreFileApisANSI возвращает 1, т.е. у меня не оем...

    В CreateFont поставил ANSI_CHARSET, не помогает... в DrawText поставил флаг DT_EDITCONTROL, то же самое ...

    Единственное что осталось попробовать - изменить язык загрузки, у меня англ., может из-за этого DrawText глючит?

    В экзамплах масма есть barchart - там ТекстАут и он почему-то работает нормально, если выводить из буфера русский текст, а вот в 5-м уроке такой же ТекстАут выдаёт крякозяблы.
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    lomik
    Вообще-то надо наоборот: cp1252.nls на utf8.nls. Но и то, и другое на самом деле не есть хорошо.

    Напиши DrawTextA, тогда вызовется ANSI-версия без вариантов.
     
  3. lomik

    lomik New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2010
    Сообщения:
    45
    CyberManiac - спасибо за совет, сделал А, на всякий случай

    но проблема решилась - вычитал, что есть ещё флаг RUSSIAN_CHARSET и как только его установишь, всё становится ок. ( однако, когда стояла кодовая страница 1252, всё было ок и OEM_CHARSET! )

    неприятная весчь - сделал автоматическую установку шрифта и размеров окна, привязанных к нему - количество строк и символов в строке всегда одно и то же при любом разрешениии и обнаружил, что при изменении размера курьер ньюса от 20 до 24 ( это вроде бы высота ) - высота не изменяется, а изменяется ширина только... в общем надо под каждое разрешение строить свой шрифт... у меня разрешение 1280х768 и при больших вид не совсем тот...

    забыл сказать что начал писать Ладжестический 2-страничный Текстовый Редактор, времени летом почти нет, попозже добавлю : нумерацию страниц, подсветку, ну и сохранение конечно - дело в том что при открытии файла он обрабатывется - удаляются лишние переносы, пробелы, текст выравнивается по краям страниц ( только для русских слов, так что строки с кодом остаются в неизменном виде), есть надежда что удастся сделать редактирование - непосредственно на 2 страницах, это было бы прикольно... есть много хороших читалок но такого в них нет