Language.h
资源名称:MiniCA2.rar [点击查看]
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:3k
源码类别:
CA认证
开发平台:
Visual C++
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // 预处理
- #pragma once
- #include <Windows.h>
- //#define _MAKELANG
- #include "..ControlXpButtonSTBCMenu.h"
- //#include "DynRes.h"
- //#include "JXIniFile.h"
- #ifndef PCTSTR
- #define PCTSTR LPCTSTR
- #endif
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // 宏定义
- #define _Lang(n, a) CLanguage::TranslateText(TEXT(#n), TEXT(a))
- #define _TLang(n, t) CLanguage::TranslateText(TEXT(#n), t)
- #define _LangEx(n, a) CLanguage::TranslateTextEx(TEXT(#n), TEXT(a)) // 多行文本或字符串组
- #define _TLangEx(n, t) CLanguage::TranslateTextEx(TEXT(#n), t)
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // CLanguage 类
- class CLanguage
- {
- public:
- static UINT m_uLang; // 语言菜单号
- static TCHAR m_tzText[1024]; // 临时字符串
- private:
- static UINT m_uMax; // 语言最大号
- static HFONT m_hFont; // 对话框字体
- static TCHAR m_tzFileName[MAX_PATH]; // 语言文件名称
- public:
- // 初始化语言
- static LANGID Initialize();
- // 列出语言
- static UINT List(HMENU hMenu);
- // 设置语言
- static VOID Set(HMENU hMenu, UINT uLang);
- // 获取语言描述
- static PTSTR GetDescription(HMENU hMenu, UINT uLang);
- // 获取常规字符串
- static CString TranslateText(PCTSTR ptzName, PCTSTR ptzDefault = NULL);
- // 获取常规字符串,并替换特殊字符
- static PTSTR TranslateTextEx(PCTSTR ptzName, PCTSTR ptzDefault = NULL);
- // 获取资源字符串
- static PTSTR TranslateString(UINT uResID);
- // 更新菜单
- static VOID TranslateMenu(HMENU hMenu, PCTSTR ptzResName);
- // 更新菜单BCMenu
- static VOID TranslateMenu(BCMenu * pBMenu, PCTSTR ptzResName);
- // 更新对话框
- static VOID TranslateDialog(HWND hWnd, PCTSTR ptzResName);
- public:
- // 销毁
- inline static VOID Destroy()
- {
- if (m_hFont)
- {
- DeleteObject(m_hFont);
- m_hFont = NULL;
- }
- }
- private:
- // 设置菜单字符串
- static BOOL SetMenuString(HMENU hMenu, UINT uItemID, PCTSTR ptzString, BOOL bByPosition = FALSE);
- // 从语言文件中更新菜单
- static VOID UpdateMenuFromLanguage(HMENU hMenu, PCTSTR ptzSection, PCTSTR ptzPath = TEXT(""));
- // 从语言文件中更新菜单
- static VOID UpdateMenuFromLanguage(BCMenu * pBMenu, PCTSTR ptzSection, PCTSTR ptzPath = TEXT(""));
- // 从资源中更新菜单
- static VOID UpdateMenuFromResource(HMENU hMenu, PCTSTR ptzResName);
- // 从语言文件中更新对话框
- static BOOL CALLBACK UpdateDialogFromLanguage(HWND hWnd, PCTSTR ptzSection);
- // 从资源中更新对话框
- static VOID UpdateDialogFromResource(HWND hWnd, PCTSTR ptzResName);
- };
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////