// Функция WndProc_OnCommand
// -----------------------------------------------------
#pragma warning(disable: 4098)
void WndProc_OnCommand(HWND hWnd, int id,
HWND hwndCtl, UINT codeNotify)
{
char szBuf[1024];
char szBuf1[1024];
char szKbLayoutName[KL_NAMELENGTH];
BOOL fRc;
switch (id)
{
case ID_FILE_EXIT:
{
// Завершаем работу приложения
PostQuitMessage(0);
return 0L;
break;
}
// Установка набора национальных параметров для Англии
case ID_LOCALINFO_SETENGLISH:
{
// Выполнение установки для текущей задачи
fRc = SetThreadLocale(MAKELCID(
MAKELANGID(LANG_ENGLISH, SUBLANG_NEUTRAL),
SORT_DEFAULT));
// При возникновении ошибки получаем и отображаем ее код
if(fRc == FALSE)
{
wsprintf(szBuf1,"SetThreadLocale: Error %ld\n",
GetLastError());
MessageBox(hWnd, szBuf1, "Error", MB_OK);
}
break;
}
// Установка набора национальных параметров для России
case ID_LOCALINFO_SETRUSSIAN:
{
fRc = SetThreadLocale(MAKELCID(
MAKELANGID(LANG_RUSSIAN, SUBLANG_NEUTRAL),
SORT_DEFAULT));
if(fRc == FALSE)
{
wsprintf(szBuf1,"SetThreadLocale: Error %ld\n",
GetLastError());
MessageBox(hWnd, szBuf1, "Error", MB_OK);
}
break;
}
// Получение и отображение некоторых
// национальных параметров
case ID_LOCALINFO_GETLOCALINFO:
{
// Отображение полного названия национального языка
strcpy(szBuf, "LOCALE_SLANGUAGE: ");
GetLocaleInfo(
GetThreadLocale(), LOCALE_SLANGUAGE, szBuf1, 512);
strcat(szBuf, szBuf1);
// Отображение кода страны
strcat(szBuf, "\nLOCALE_ICOUNTRY: ");
GetLocaleInfo(
GetThreadLocale(), LOCALE_ICOUNTRY, szBuf1, 512);