MessageBox的語系問題
前幾天有人寫信問我關於切換語系之後,MessageBox沒有跟著切換的問題。
我之前也有碰過類似的問題,所以好奇去追了一下MessageBox到底是從哪裡產生出來的…
public static extern int MessageBox(HandleRef hWnd, string text, string caption, int type);
由以上得知,是從外部引用進來的。
我開始異想天開的去猜,不知道可不可以去傳參數之類的給user32.dll讓他去切換。
後來跑去MSDN的論壇問了一下,才發覺自己其實蠻笨的T_T
引用小朱說的:
內建的 MessageBox 好像會受到作業系統語系的影響,畢竟 .NET 只呼叫 Windows API 的 MessageBox() 來顯示,這個 API 本身就會受到作業系統的 Region 設定限制,像是在沒有 安裝 Language Pack 的繁體中文 Windows 作業系統中,你怎麼能期望它會顯示日文 ... |
所以啦,應該是辦不到。
如果想要一個可以切換語MessageBox,應該就得自己動手做了~
不過這樣看起來,如果是引用自Windows API的都會有相同的問題囉!