MessageBox 按钮显示英文或其他语言
由于特殊原因我們需要將 MessageBox 或 Dialog 的按鈕“確定”、“取消”用英文或其他語(yǔ)言顯示。在網(wǎng)上查找了很多相關(guān)內(nèi)容,但很多要么很麻煩,要么根本就不能實(shí)現(xiàn)所需效果。最后發(fā)現(xiàn)還是MSDN最好用。
首先是MessageBox中如何將按鈕中的文字顯示為其他語(yǔ)言。MessageBox要使用 MessageBoxEx才可以,其定義如下:
最后一個(gè)參數(shù)MSDN上給出的解釋是:
wLanguageId [in]
Type: WORD
The language for the text displayed in the message box button(s). Specifying a value of zero (0) indicates to display the button text in the default system language. If this parameter is MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), the current language associated with the calling thread is used.
To specify a language other than the current language, use the MAKELANGID macro to create this parameter. For more information, see MAKELANGID.
意思就是我們需要用函數(shù)MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),來(lái)生成最后一個(gè)參數(shù)。它的定義為
WORD MAKELANGID(USHORT usPrimaryLanguage,USHORT usSubLanguage );微軟給我們提供了足夠多的語(yǔ)言支持,關(guān)于這兩個(gè)參數(shù)可以參見微軟提供的Language Identifier Constants and Strings表格。從表格中查找相應(yīng)的語(yǔ)言的PrimaryLanguage和SubLanguage即可。如英語(yǔ)為:LANG_ENGLISH 和 SUBLANG_ENGLISH_US ,可以寫成MAKELANGID(LANG_ENGLISH , UBLANG_ENGLISH_US );
最后舉一個(gè)例子:
下面介紹一下如何修改Dialog中的默認(rèn)按鈕上的文字,這里只介紹系統(tǒng)定義的Dialog,如:CFileDialog。(Customer Dialog 也沒(méi)有做這些的意義了,因?yàn)橹苯有薷陌粹o的Caption 屬性即可)。修改Dialog的默認(rèn)按鈕文字只需要在創(chuàng)建Dialog前加上一句:
SetThreadUILanguage(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));即可,參數(shù)中MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)的使用和上文的使用方法中一樣。
總結(jié)
以上是生活随笔為你收集整理的MessageBox 按钮显示英文或其他语言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 十进制转化为二进制(栈算法)
- 下一篇: C语言基础代码合集 | 十进制转化为二进