void CMultiLanguagesDlg::OnLanguageSwitch()
{
// 读取当前线程的语言,并根据当前线程语言进行语言切换
LCID lcidNew = GetThreadLocale();
if (LANG_ENGLISH == PRIMARYLANGID(LANGIDFROMLCID(lcidNew)))
{
lcidNew = MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_DEFAULT);
}
else
{
lcidNew = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
}
// 把语言设置写入配置文件
CFile file;
file.Open(_T("Language.ini"), CFile::modeWrite | CFile::modeCreate | CFile::typeBinary);
file.Write(&lcidNew, sizeof(lcidNew));
file.Close();
// 关闭窗口
m_bRestartFlag = TRUE;
PostMessage(WM_CLOSE, 0, 0);
}
//程序重启:
if (m_bRestartFlag)
{
CString strFileName = _T("");
GetModuleFileName(NULL, strFileName.GetBuffer(MAX_PATH), MAX_PATH);
ShellExecute(NULL, _T(""), strFileName, NULL, NULL, SW_SHOWNORMAL);
strFileName.ReleaseBuffer();
}