текст заголовка окна

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

  1. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    чё-то не допру как нормально отобразить текст заголовка окна
    для русского текста в Windows 2000 функция GetWindowText заполняет переданный буфер вопросами при установленной английской локали
    в windows 98 заполнения вопросами не происходит
    есть функция GetWindowTextW, но она не работает в Windows 98
    между тем, в броузере вопросов в заголовке не наблюдается даже для арабского текста как в Windows 98, так и в Windows 2000
    что единственный выход - проверять версию системы и в зависимости от неё вызывать либо GetWindowText (Windows 98) либо GetWindowTextW (Windows 2000)?
     
  2. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    вобщем решил использовать функцию GetWindowTextW
    но она выдаёт результат в UTF-16 (или WideChar)
    а вьюеров поддерживающих эту кодировку я не нашёл
    так что дополнительно вызываю функцию WideCharToMultiByte с первым параметром 65001
    тогда результат выходит в кодировке UTF-8, и лог-файл можно просмотреть с internet explorer
     
  3. MikDay

    MikDay New Member

    Публикаций:
    0
    Регистрация:
    5 май 2005
    Сообщения:
    32
    Адрес:
    Minsk
    "а вьюеров поддерживающих эту кодировку я не нашёл"

    В Блокноте Файл/Открыть..., выбрать Кодировку "Юникод"
     
  4. apple

    apple Виктор

    Публикаций:
    0
    Регистрация:
    26 апр 2005
    Сообщения:
    907
    Адрес:
    Russia
    Используй макрос GetWindowText. Тогда ты сможешь в один момент, устанавливая препроцессорную директиву UNICODE менять вызов функций GetWindowTextA<-->GetWindowTextW. Соответственно, для буфера TCHAR.
     
  5. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    у меня блокнот отображает только UTF-8
     
  6. WIN32

    WIN32 Member

    Публикаций:
    0
    Регистрация:
    20 янв 2007
    Сообщения:
    338
    могу продать свой блокнот :)
     
  7. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    может имеешь код этого макроса?
    теперь думаю как лучше сделать чтобы в windows 98 вызывались GetWindowText а в windows 2000 вместо них вызывались GetWindowTextW
    если получать вначале адрес функции а потом её вызывать то как быть с invoke?
     
  8. wasmer

    wasmer New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    104
    ну вобщем с этим разобрался - просто при ошибке вызова GetWindowTextW вызываю GetWindowText