Моделировать wm_char сообщение , отправить мульти-байт
некоторые азиатские слова имеют многобайтовые значения , я пытаюсь смоделировать сообщение wm_char для отправки этих слов , но потерпел неудачу , даже используя двоичные байты.
Есть ли другой способ справиться с этим ?
Что я уже пробовал:
подобный этому :
PostMessage(ctrl_info.ctrl_hwnd , WM_CHAR ,0xbac3,0)
это фрагмент кода отправки моделирования wm_char в элемент управления редактированием блокнота, я сохранил Блокнот ,узнав, что сообщение 0xbac3 было разделено на 0xc300 и 0xba00
Jochen Arndt
WM_CHAR ожидает символ Unicode в пареметре wParam.
То, что в конечном итоге записывается в файл блокнотом, зависит от кодировки файла, который по умолчанию является кодовой страницей текущего пользователя, но может быть изменен для новых файлов и оставлен неизменным с существующими файлами Unicode.
Если вы найдете те же байты, что и переданные (0xC3 и 0xBA соответственно). 0XBAC3) в файле, вероятно, вы сохранили файл с кодировкой UTF-16.
Yount_0701
это правда. операция сохранения выскочила из диалогового окна , я выбрал кодировку utf-16.
Но я не уверен, что вы имеете в виду "WM_CHAR ожидает символ Unicode в пареметре wParam." Я использую двоичный код 0xbac3,это должно быть слово unicode,но вид в блокноте приводит меня в замешательство, это просто какие-то случайные символы.
Yount_0701
Это правда. операция сохранения выскочила из диалогового окна , я выбрал кодировку utf-16.
Но я не уверен, что вы имеете в виду "WM_CHAR ожидает символ Unicode в пареметре wParam." Я использую двоичный код 0xbac3,это должно быть слово unicode,но вид в блокноте приводит меня в замешательство, это просто какие-то случайные символы.
Richard MacCutchan
Это происходит потому, что блокнот использует английский набор символов, поэтому он не понимает коды Юникода, которые вы ему отправляете.
Richard MacCutchan
Вы на самом деле не объяснили, какую проблему пытаетесь решить. Но мне приходит в голову, что, скорее всего, есть гораздо более простое решение, чем отправка сообщений WM_CHAR в блокнот.