VC INI文件实现多语言版本

本文介绍两种使用VC++实现多语言界面的方法:一是通过控件ID设置,利用.ini文件进行快速语言切换;二是通过.ini文件读写,为每个控件进行翻译。提供了具体代码示例及下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:


方法一:通过控件ID设置,快速但缺少标题栏,单独设置
 CWnd *pCtrl = GetWindow(GW_CHILD);
	while (pCtrl != NULL)
	{
		UINT ctrlID = pCtrl->GetDlgCtrlID();
		//	setControlCaption(pCtrl,ctrlID);
		CString str_id, str_text;
		str_id.Format("%u", ctrlID);
		GetPrivateProfileString("Form", str_id, "", str_text.GetBuffer(MAX_PATH), MAX_PATH, ".//ItemCN.ini");
		if ("" != str_text)
			GetDlgItem(ctrlID)->SetWindowText(str_text);

		pCtrl = pCtrl->GetNextWindow();
	}

//枚举对话框中所有组件->start,调试用
//枚举对话框中所有组件->start,调试用
	/*
	CWnd *pCtrl = GetWindow(GW_CHILD);
	while (pCtrl != NULL)
	{
		UINT ctrlID = pCtrl->GetDlgCtrlID();
		//	setControlCaption(pCtrl,ctrlID);
		CString str_id, str_text;
		str_id.Format("%u", ctrlID);
		GetDlgItem(ctrlID)->GetWindowText(str_text);
		WritePrivateProfileString("Form", str_id, str_text, ".//Item.ini");
		pCtrl = pCtrl->GetNextWindow();
	}
	*/
	//枚举对话框中所有组件-> end


方法二:ini函数读写,需要为每个控件翻译
TIniFile IniFile;
	IniFile.InitFile(_T(".//Chinese.ini"));
	CString str;
	str=IniFile.ReadString(_T("Translations"), _T("GALAXY"), _T(""));
	SetWindowText(str);
	str = IniFile.ReadString(_T("Translations"), _T("Button1"), _T(" "));
	GetDlgItem(IDC_BUTTON1)->SetWindowText(str);
	str = IniFile.ReadString(_T("Translations"), _T("this is static"), _T(" "));
	GetDlgItem(IDC_STATIC1)->SetWindowText(str);
源码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值