StringTable


struct Language
{
 UINT nDlgId;
 UINT nStringId[lang_num];
};

static const Language structlanguage[] =
{
 {ID_FILE_NEW, {ID_FILE_NEW, ID_FILE_NEW_ENG}},
 {ID_FILE_OPEN, {ID_FILE_OPEN, ID_FILE_OPEN_ENG}},
 {ID_FILE_SAVE, {ID_FILE_SAVE, ID_FILE_SAVE_ENG}},  

};

 for (int _i = 0; _i < _countof(structlanguage); ++_i)
 {
  LoadString(structlanguage[_i].nStringId[m_nLanguage], _strTxt);
  m_LangString.insert(langStringPair(structlanguage[_i].nDlgId, _strTxt));
 }


 int LangLoadString(UINT nID_, LPTSTR lpszBuf_, UINT nMaxBuf_ = 256);

typedef std::pair<int, CString> langStringPair;


 m_LangString.clear();
 CString _strTxt;

 for (int _i = 0; _i < _countof(structlanguage); ++_i)
 {
  LoadString(structlanguage[_i].nStringId[m_nLanguage], _strTxt);
  m_LangString.insert(langStringPair(structlanguage[_i].nDlgId, _strTxt));
 }


int CAxesErrEditorView::LangLoadString(UINT nID_, LPTSTR lpszBuf_, UINT nMaxBuf_ )
{
 CString _strTxt;
 TStringMap::const_iterator _it;
 _it = m_LangString.find(nID_);
 if (_it != m_LangString.end())
 {
  _strTxt = _it->second;
  _tcsncpy(lpszBuf_, _strTxt, min((_strTxt.GetLength()+2), int(nMaxBuf_)));
  return _strTxt.GetLength();
 }

 DWORD _nRet  = AfxLoadString(nID_, lpszBuf_, nMaxBuf_);
 if (_nRet)
 {
  _strTxt = lpszBuf_;
  m_LangString.insert(langStringPair(nID_, _strTxt));
 }
 return _nRet;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值