您的位置:首页 > 其它

实现多国语言的几个小知识

2015-11-26 15:36 344 查看
From:/article/2577516.html

获取模块(exe,dll)的执行目录

CString szCurPath(""), szModelPath;

GetModuleFileName(NULL,szCurPath.GetBuffer(MAX_PATH),MAX_PATH);

szCurPath.ReleaseBuffer();

szModelPath = szCurPath.Left(szCurPath.ReverseFind('//') + 1); //去掉模块的名字

// 获得可执行文件所在的目录
CString GetModuleDirName()
{
CString dirName;
::GetModuleFileName(nullptr, dirName.GetBuffer(MAX_PATH), MAX_PATH);
dirName.ReleaseBuffer();  // 释放对GetBuffer所返回的缓冲区的控制权
int pos = dirName.ReverseFind('\\');
dirName = dirName.Left(pos);
return dirName;
}


寻找目录下的文件

CFileFind find;

//Call this member function to open a file search

bool bRet = find.FindFile(szCurPath + "*.txt");

CString szEng = "";

while(bRet)

{

bRet = find.FindNextFile();

if(find.IsDots() || find.IsDirectory()) continue;

CString szFileName = find.GetFileName();

//....

}

find.Close();

创建一个目录

CreateDirectory(szPath,NULL);

把资源文件中的某一项写出为文件

HRSRC hSrc = FindResource(NULL,MAKEINTRESOURCE(nID),_T("OWNER_DATA"));

if(hSrc == NULL) return false;

HGLOBAL hGlobal = LoadResource(NULL,hSrc);

if(hGlobal == NULL) return false;

LPVOID lp = LockResource(hGlobal);

DWORD dwSize = SizeofResource(NULL,hSrc);

CFile file;

if(file.Open(szPathName,CFile::modeCreate|CFile::modeWrite))

{

file.Write(lp,dwSize);

file.Close();

}

FreeResource(hGlobal);

配置文件的读写

字符串:

GetPrivateProfileString

WritePrivateProfileString

遍历对话框的子控件

CWnd* pWnd = pDlg->GetWindow(GW_CHILD);

while(pWnd != NULL)

{

//******

//pWnd->GetDlgCtrlID()

pWnd = pWnd->GetWindow(GW_HWNDNEXT);

}

获得菜单

CWnd::GetMenu()

遍历菜单:

CMenu的几个成员函数:

GetSubMenu

GetMenuItemCount

GetMenuItemID

参考:

程序实现多国语言的动态切换解决方案

作者:耿海增
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: