languageresmanage.cpp
来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C++ 代码 · 共 75 行
CPP
75 行
// LanguageResManage.cpp: implementation of the CLanguageResManage class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Ex110202.h"
#include "LanguageResManage.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CEx110202App theApp;
CLanguageResManage::CLanguageResManage()
{
m_uCurLangIndex = 0 ;
m_hCurLangDLL = NULL;
}
CLanguageResManage::~CLanguageResManage()
{
}
bool CLanguageResManage::Init()
{
m_uCurLangIndex = AfxGetApp()->GetProfileInt("语言","当前语言",0);
return ChangeLanguage(m_uCurLangIndex);
}
bool CLanguageResManage::Exit()
{
Release();
AfxGetApp()->WriteProfileInt("语言","当前语言",m_uCurLangIndex);
return true ;
}
bool CLanguageResManage::ChangeLanguage(int nLangIndex)
{
Release();
if( 0 == nLangIndex )
{
AfxSetResourceHandle(theApp.m_hInstance );
m_uCurLangIndex = 0 ;
return true ;
}
//取得属性名
CString strEntryName ;
strEntryName.Format("LangDll%d",nLangIndex);
//取得DLL名称
CString strDLLName = AfxGetApp()->GetProfileString("语言",strEntryName,"");
if(strDLLName.IsEmpty())
return false ;
//设置资源
m_hCurLangDLL=::LoadLibrary(strDLLName);
if(NULL == m_hCurLangDLL)
return false ;
m_uCurLangIndex = nLangIndex ;
AfxSetResourceHandle(m_hCurLangDLL);
return true ;
}
bool CLanguageResManage::Release()
{
if(NULL != m_hCurLangDLL && theApp.m_hInstance != m_hCurLangDLL)
return true ;//使用Exe中的资源,不需要也不能释放
return AfxFreeLibrary(m_hCurLangDLL);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?