1. 程式人生 > >MFC多國語言

MFC多國語言

關於MFC多國語言操作流程,請參考下面兩篇部落格
MFC多國語言介面的實現-簡單方式
MFC多國語言介面的實現-DLL方式
解釋:
1、Win7系統中無法使用SetThreadLocale/GetThreadLocale,應該改為SetThreadUILanguage/GetThreadUILanguage。

2、當已經生成多國語言的資源後,後續要在資源中繼續新增內容,比如增加選單條目或新增字串資源,那麼如何操作才能保證新增資源後,多國語言的資源內容ID和訊息響應保持一致?
如果我們在主語言資源中新增一個選單後,我們應該在Resource.h中,將這個選單的ID的巨集定義複製到其他語言資源的Resource中去,然後在介面中選擇對應的資源ID,而不是簡單在介面中輸入巨集名稱,如下圖所示,
在這裡插入圖片描述


如圖所示,我們需要將DlgMutliLang工程中Resource.h的#define ID_TEST2 32780複製到DlgMutliLang_US工程的資源標頭檔案Resource.h中,然後再將選單的ID選擇為ID_TEST2,如下圖所示,
在這裡插入圖片描述
3、如何保證系統提供的對話方塊(AfxMessageBox,MessageBox,CFileDialog)中的控制元件名稱也能切換中英文?
AfxMessageBox/CFileDialog : 獲取控制元件的ID,然後手動設定成英文,網上的例子沒有測試成功。
MessageBox:可以改用MessageBoxEx(), 最後一個引數,可以設定LCID