Я установил связь шрифта с SimSun для своих шрифтов в реестре Windows.
Когда я применяю этот шрифт к моему элементу управления RichEdit, он ведет себя следующим образом:
- Во-первых, он отображает SimSun - хорошо
- Когда я добавляю текст, который не является юникодом CKJ, а затем добавляю больше текста в CKJ, выбранным окном шрифта является Microsoft Ya Hei вместо SimSun.
Вот скриншот:
Шрифты:
- "阿哥": SimSun
- «◎»: символ пользовательского интерфейса Segoe.
- "[āgē] đại ca" Arial
- "对兄长的称呼。" Microsoft Ya Hei
Как я могу заставить окно выбрать SimSun вместо Microsft Ya Hei в этом случае?
EDIT
Спасибо @Cody Grey за отличный ответ. Вот рабочий код:
CHARFORMAT2 cf2;
memset(&cf2, 0, sizeof(CHARFORMAT2));
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_FACE | CFM_SIZE | CFM_CHARSET | CFM_LCID;
cf2.lcid = 0x0804;
cf2.yHeight = 280;
cf2.bCharSet = CHINESEBIG5_CHARSET;
wcscpy(cf2.szFaceName, L"SimSun");
SendMessage(rtbhWnd, EM_SETCHARFORMAT, SCF_SELECTION | SCF_ASSOCIATEFONT, (LPARAM)&cf2);
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_FACE | CFM_SIZE | CFM_CHARSET | CFM_LCID;
cf2.lcid = 0x0409;
cf2.yHeight = 220;
cf2.bCharSet = ANSI_CHARSET;
wcscpy(cf2.szFaceName, L"Segoe UI");
SendMessage(rtbhWnd, EM_SETCHARFORMAT, SCF_SELECTION | SCF_ASSOCIATEFONT2, (LPARAM)&cf2);