Как вывести глифы Emoji через TextOut или CCanvas в терминале мт5?

 

Суть задачи вывести смайлики и другие эмодзи в canvas поверх графика или в ресурсе.

Подключаю ресурс шрифта с эмодзи, и пробую вывести код U+1F600

m_canvas.FontSet("::Files/Apple Color Emoji.ttf",42); //задал шрифт для отрисовки

string ssmile="\x1F600"; 

m_canvas.TextOut(20,20,ssmile,ColorToARGB(clrRed),TA_RIGHT); //выводим в нужных координатах

В итоге рисуется безобразие :-(


Пробовал и через стандартные шрифты в Windows : Segou UE Emoji 

Так он не содержит данного кода. Рисует только глифы 16 битные. 


Кто решал такую задачку, как решать? Может какой другой шрифт использовать? 1

16 битные варианты они выводятся, а вот 32 битные не хотят :-( 

 
Alexandr Gavrilin:

Суть задачи вывести смайлики и другие эмодзи в canvas поверх графика или в ресурсе.

string ssmile="\x1F600"; 

Для начала попробуйте ShortToString(x1F60 /*или какой там код*/). Подразумевается код в диапазоне ushort, т.е. не более 0xFFFF.

 
Stanislav Korotky #:

Для начала попробуйте ShortToString(x1F60 /*или какой там код*/). Подразумевается код в диапазоне ushort, т.е. не более 0xFFFF.

Тогда совсем не тот код будет. Коды глифов эмодзи идут в UTF-16 > 0xFFFF  

1. Emoticons ( 1F601 - 1F64F )

для справки, вот эти нужно вывести https://apps.timwhitlock.info/emoji/tables/unicode

через TextOut  , но как ? Если поддерживает терминал только short (

Emoji unicode characters for use on the web
Emoji unicode characters for use on the web
  • Tim Whitlock
  • apps.timwhitlock.info
Emoji code points and example glyphs using web fonts, sprites and native OS representation of Emoji characters
 
Alexandr Gavrilin #:

Тогда совсем не тот код будет. Коды глифов эмодзи идут в UTF-16 > 0xFFFF  

1. Emoticons ( 1F601 - 1F64F )

для справки, вот эти нужно вывести https://apps.timwhitlock.info/emoji/tables/unicode

через TextOut  , но как ? Если поддерживает терминал только short (

Через ushort - никак. Попробуйте вставить символ непосредственно в строку в файле с исходником.

 
Stanislav Korotky #:

Через ushort - никак. Попробуйте вставить символ непосредственно в строку в файле с исходником.

нда.... ждем разбирающихся людей в данной теме.

Причина обращения: