MessageBox的語系問題

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的都會有相同的問題囉!

 

MSDN的討論網址