Dela via


Så här använder du teckensnittsbindning i omfattande redigeringskontroller

Microsoft Rich Edit 3.0 tilldelar en teckenuppsättning till oformaterade tecken beroende på deras kontext. Några exempel är:

  • Grekiska tecken är tilldelade GREEK_CHARSET.
  • Hangul-symboler tilldelas HANGUL_CHARSET.
  • Kinesiska tecken tilldelas SHIFTJIS_CHARSET om kana-tecken hittas i närheten eller GB2312_CHARSET om ingen kana hittas i närheten.
  • Icke-neutrala ANSI-tecken tilldelas ANSI_CHARSET i alla händelser.

Not

Den omfattande redigeringskontrollen använder Unicode internt, så den här användningen av teckenuppsättningar skiljer sig från den ursprungliga som används i teckensnittsspecifikationer. Men CHARFORMAT-struktur har en väldefinierad plats för teckenuppsättningen.

 

Neutrala tecken som tomma och siffror tilldelas en teckenuppsättning beroende på deras kontext. Till exempel, ett tomt värde omgivet av tecken med samma teckenuppsättning får den teckenuppsättningen. Neutrala och siffror som används för dubbelriktad text tilldelas teckenuppsättningar på ett sätt som baseras på Unicodes dubbelriktade algoritm.

Vad du behöver veta

Teknologier

Förutsättningar

  • C/C++
  • Programmering av Windows-användargränssnitt

Instruktioner

Använda teckensnittsbindning i en omfattande redigeringskontroll

När teckenuppsättningar har tilldelats söker Rich Edit igenom texten runt insättningspunkten framåt och bakåt för att hitta närmaste teckensnitt som har använts för teckenuppsättningarna. Om inget teckensnitt hittas för en teckenuppsättning använder Rich Edit det teckensnitt som valts av klienten för den teckenuppsättningen. Om klienten inte har angett något teckensnitt för teckenuppsättningen använder Rich Edit standardteckensnittet för den teckenuppsättningen. Om klienten vill ha något annat teckensnitt kan klienten alltid ändra det, men den här metoden fungerar för det mesta. De aktuella standardalternativen för teckensnitt baseras på följande tabell. Observera att standardteckensnitten anges per process och att det finns separata listor för användargränssnittsanvändning och för användning som inte är användargränssnitt.

Språk Namn på användargränssnittsteckensnitt UI-teckenstorlek teckensnittsnamn som inte är för användargränssnitt teckenstorlek som inte är UI
Western, CE, ME, Vietnamesisk Tahoma 8 Arial 10
Japanska MS UI Gothic 9 MS P Gothic 10
Koreanska Gulim 9 Gulim 9
Förenklad kinesiska Simsun 9 SimSun 10
Traditionell kinesiska PMingLiU 9 PMingLiU 9
Thai MS Sans Serif 8 Tahoma 14
Symboler Wingdings 8 Wingdings 10
Devanagari Mangal 8 Mangal 10
Tamilska Latha 8 Latha 10
Georgisk, armenisk Arial Unicode 8 Arial Unicode 10

 

I standardtabellen för teckensnittsbindning (poster har en teckenuppsättning, teckensnittsnamn och storlek) tillåter Rich Edit därför att ANSI_CHARSET matchar flera teckenuppsättningar, medan lämplig teckenuppsättning matchar andra teckensnitt på en-till-en-basis. Mer precist använder rich edit valet ANSI_CHARSET om inget annat alternativ hittas. Du kommer att kunna ange en finare kornighet än detta; du kan till exempel tilldela en specifik ARABIC_CHARSET för arabiska teckensekvenser, ett specifikt grekiskt teckensnitt för grekiska sekvenser och så vidare. Den här finare kornigheten används också om ett teckensnitt med önskad teckenuppsättningsstämpel hittas någonstans i dokumentet före det område som är teckenbundet.

Observera att Rich Edit för närvarande inte hanterar ett tecken som saknas i ett teckensnitt som påstår sig ha stöd för en teckenuppsättning men som är ofullständig. Vid visning i ett komplext skript vet Rich Edit till slut att en sådan glyf saknas, men det gör inte att den bakomliggande lagringen använder ett nytt teckensnitt. Normalt utför den underliggande teckensnittslänkningen i operativsystemet detta.

Anmärkningar

Rich Edit 4.1: Om du vill ange standardteckensnittet för ett skript anropar du EM_SETCHARFORMAT med CHARFORMAT2och anger värden för yHeight, bCharSet, bPitchAndFamily, szFaceNameoch lcid medlemmar. Om du vill hämta standardteckensnittet för en specifik kodsida anropar du EM_GETCHARFORMAT med CHARFORMAT2och anger då värden för fälten bCharSet och lcid.

med hjälp av omfattande redigeringskontroller

Windows Common Controls demo (CppWindowsCommonControls)