?? language.cpp
字號:
/////////////////////////////////////////////////////////////////////////////
// This file is part of the completely free tetris clone "CGTetris".
//
// This is free software.
// You may redistribute it by any means providing it is not sold for profit
// without the authors written consent.
//
// No warrantee of any kind, expressed or implied, is included with this
// software; use at your own risk, responsibility for damages (if any) to
// anyone resulting from the use of this software rests entirely with the
// user.
/////////////////////////////////////////////////////////////////////////////
// Language.cpp: implementation of the CLanguage class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "tetris.h"
#include "Language.h"
#include <winnls.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
HMODULE CLanguage::m_hLangDLL;
HMODULE CLanguage::m_hLocalResource;
static struct LangDLL {
WORD wPrimaryLang;
LPCTSTR pszDLL;
} gLangDLL[] = {
{LANG_AFRIKAANS, TEXT("AFRIKAANS.lng")},
{LANG_ALBANIAN, TEXT("ALBANIAN.lng")},
{LANG_ARABIC, TEXT("ARABIC.lng")},
{LANG_BASQUE, TEXT("BASQUE.lng")},
{LANG_BELARUSIAN, TEXT("BELARUSIAN.lng")},
{LANG_BULGARIAN, TEXT("BULGARIAN.lng")},
{LANG_CATALAN, TEXT("CATALAN.lng")},
{LANG_CHINESE, TEXT("CHINESE.lng")},
{LANG_CROATIAN, TEXT("CROATIAN.lng")},
{LANG_CZECH, TEXT("CZECH.lng")},
{LANG_DANISH, TEXT("DANISH.lng")},
{LANG_DUTCH, TEXT("DUTCH.lng")},
{LANG_ESTONIAN, TEXT("ESTONIAN.lng")},
{LANG_FAEROESE, TEXT("FAEROESE.lng")},
{LANG_FARSI, TEXT("FARSI.lng")},
{LANG_FINNISH, TEXT("FINNISH.lng")},
{LANG_FRENCH, TEXT("FRENCH.lng")},
{LANG_GERMAN, TEXT("GERMAN.lng")},
{LANG_GREEK, TEXT("GREEK.lng")},
{LANG_HEBREW, TEXT("HEBREW.lng")},
{LANG_HUNGARIAN, TEXT("HUNGARIAN.lng")},
{LANG_ICELANDIC, TEXT("ICELANDIC.lng")},
{LANG_INDONESIAN, TEXT("INDONESIAN.lng")},
{LANG_ITALIAN, TEXT("ITALIAN.lng")},
{LANG_JAPANESE, TEXT("JAPANESE.lng")},
{LANG_KOREAN, TEXT("KOREAN.lng")},
{LANG_LATVIAN, TEXT("LATVIAN.lng")},
{LANG_LITHUANIAN, TEXT("LITHUANIAN.lng")},
{LANG_NORWEGIAN, TEXT("NORWEGIAN.lng")},
{LANG_POLISH, TEXT("POLISH.lng")},
{LANG_PORTUGUESE, TEXT("PORTUGUESE.lng")},
{LANG_ROMANIAN, TEXT("ROMANIAN.lng")},
{LANG_RUSSIAN, TEXT("RUSSIAN.lng")},
{LANG_SERBIAN, TEXT("SERBIAN.lng")},
{LANG_SLOVAK, TEXT("SLOVAK.lng")},
{LANG_SLOVENIAN, TEXT("SLOVENIAN.lng")},
{LANG_SPANISH, TEXT("SPANISH.lng")},
{LANG_SWEDISH, TEXT("SWEDISH.lng")},
{LANG_THAI, TEXT("THAI.lng")},
{LANG_TURKISH, TEXT("TURKISH.lng")},
{LANG_UKRAINIAN, TEXT("UKRAINIAN.lng")},
{LANG_VIETNAMESE, TEXT("VIETNAMESE.lng")}
};
#define ENDVEC( vector ) (vector-1+sizeof(vector)/sizeof(vector[0]))
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CLanguage::CLanguage()
{
m_LangID = ::GetUserDefaultLangID();
LPCTSTR pszLangDll = 0;
LangDLL * low = gLangDLL;
LangDLL * high = ENDVEC(gLangDLL);
WORD wLang = PRIMARYLANGID(m_LangID);
while( low <= high ) {
if( low->wPrimaryLang == wLang ) {
pszLangDll = low->pszDLL;
break;
}
++low;
}
if( pszLangDll )
m_hLangDLL = ::LoadLibrary(pszLangDll);
m_hLocalResource = ::GetModuleHandle(0);
}
CLanguage::~CLanguage()
{
if( m_hLangDLL )
::FreeLibrary(m_hLangDLL);
m_hLangDLL = 0;
}
BOOL CLanguage :: LoadString(CString & str, UINT uResource) {
BOOL bRet = FALSE;
int bufsize = 512;
LPTSTR buf = str.GetBufferSetLength(bufsize);
if( m_hLangDLL )
bRet = ::LoadString(m_hLangDLL, uResource, buf, bufsize);
if( ! bRet )
bRet = ::LoadString(m_hLocalResource, uResource, buf, bufsize);
str.ReleaseBuffer();
return bRet;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -