Domanda

Voglio cambiare il carattere che sto usando in un CEikLabel su un dispositivo S60

Credo di poter fare quanto segue

const CFont* aPlainFont = LatinPlain12();
aLabel->SetFont(aPlainFont);

dove LatinPlain12 fa parte di questo elenco ..

Albi12
Alp13
Alpi13
Albi13
alp17
Alb17b
albi17b
alpi17
Aco13
Aco21
Acalc21
LatinBold12
LatinBold13
LatinBold17
LatinBold19 
LatinPlain12
Acb14
Acb30
Acp5

Tuttavia, chi può aiutarmi a scoprire quali da questo elenco sono a larghezza fissa .. Grazie :)

È stato utile?

Soluzione

A livello di programmazione, è possibile determinare se un carattere è proporzionale utilizzando:

const CFont* myFont; 
// Initialize your font
// ....
TBool isProportional = (myFont->FontSpecInTwips().iTypeface.Attributes() & TTypeFace::EProportional);

A proposito, potresti essere meglio enumerare i caratteri sul dispositivo e / o utilizzare l'API di carattere logico piuttosto che fare affidamento sulle funzioni di accesso ai caratteri statici.

Altri suggerimenti

Puoi utilizzare l'applicazione FontViewer per visualizzare e scoprire quali dei caratteri sono proporzionali e larghezza fissa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top