2010-04-09 55 views
0

標準窗口Charmap實用程序在字符代碼大於255的「Wingdings 2」字體中顯示了不少字符 - 例如,0xE4E顯示一隻手。如何在.NET的0..255範圍之外繪製Wingdings 2字符?

但是,如果我嘗試繪製這些字符如下:

g.DrawString(new string((char) 0xE4E, 1), new Font("Wingdings 2", 20), brush, x, y); 

然後我得到的是一個標準的「盒子」替換字符。這很奇怪,因爲上面的代碼適用於0x21和0xFF之間的Wingdings 2符號,並且也適用於Arial Unicode MS中的所有符號。

如何從這個特定的字體中繪製這些字符?是否有單獨的API?

(Win7的; .NET 3.5 SP1)


P.S.這裏的怪異字符映射表的字體與複製的字符範圍:

charmap http://i40.tinypic.com/2vtxyj4.jpg

+0

而不是新字符串((char)0xE4E)嘗試「\ uABCD」 – 2010-04-09 21:58:41

+0

你的機器上的字體映射有些問題,我的猜測是 – 2010-04-09 22:53:09

+0

@Jared:好點,但它是一個int,因爲我循環了字符 – 2010-04-09 23:05:58

回答

2

沒有,也沒有特殊的API,也不是特殊本身的字體。 Wingdings等人只是不要在字符代碼中使用「期望」字形

但是,我沒有在Charmap中看到該字體的字符代碼(Win 7)中的那個字符。如果你正在考慮你想要的角色,那只是0x4E。

Wingdings 2 in Character Map http://img213.imageshack.us/img213/5746/charmapwingdings2.png

+0

嗯...你是對的,它是同一個字符我的charmap似乎在不同的範圍下顯示了三次相同的字符集我在64位的Win7上順便找到 – 2010-04-09 21:47:23

+0

- 1爲你的souless機器生成的圈子:( – Earlz 2010-04-09 21:47:47

+1

@Earlz:對不起,如果這是Meta,你將有機會曬曬我的手繪圈子的榮耀:) – 2010-04-09 21:50:49

1

在我CHARMAP(Vista系統),繞組2只竟把0xFF的

所以,你的代碼是好的,你(char)的代碼是毋庸置疑的。

+0

我剛剛意識到那些額外的筆在我和0x21和0x22是一樣的,我認爲Win7中的字體出了問題,因爲那些額外的筆不應該是在這個時候 - 也不應該在romkyns形象中重複。 – 2010-04-09 21:54:48

+0

是的,即使它們在Win7或x64中有效,您仍然希望使用以下0xFF代碼來實現兼容 – 2010-04-09 22:02:45

相關問題