VC开发多语言界面 多种方法(非常easy) 有源代码

源代码地址(专业定制程序:MCU。Windows,Android
,VC串口,Android蓝牙等不限。

(需源代码先留邮箱)先上图

1.通过遍历 得到全部控件ID号与TEXT,得到一个中文语言配置文件

void CVV_485Dlg::getCaptionForWindow()   //做程序时用。其他时间不用
{
	//枚举对话框中全部组件
	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,lfname);
		pCtrl = pCtrl->GetNextWindow();
	}
}

得到文件 Chinese.ini

1003=转换保存并发送

1005=转换并保存

4294967295=发送

1012=待机

1013=工作

1022=接收

1004=待机

1008=工作

1023=读故障记录

1024=读执行时间

1025=读客户数据

1027=读出厂数据

1028=读实时数据

1026=保存为TXT

1029=清空接收

1030=English

1042=接收解析

1031=设置

1032=功能參数

1033=占空比

1034=设定电流

1035=设定电压

1036=设定功率

1037=脉冲频率

1038=脉冲电流

1039=预电离

1043=串  口

1044=波特率

1040=串口设置

1041=经常使用快捷键

2.手动增加其他语言文件 。能够直接Google翻译

3.控件使用窗体遍历从语言配置文件里读ID号相应的TEXT 并替换

void CVV_485Dlg::setCaptionForWindow()  //遍历设置指定窗体全部组件Caption属性代码:
{
	//枚举对话框中全部组件
	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 ,lfname);
		if(""!=str_text)
			GetDlgItem(ctrlID)->SetWindowText(str_text);

		pCtrl = pCtrl->GetNextWindow();
	}
}

4.语言切换

void CVV_485Dlg::languagezh()  //与文件名称转换  \\不好存
{
	if(language=="Chinese")
		lfname=".\\Chinese.ini";
	else
		lfname=".\\English.ini";
}

5.以上为控件切换语言时有效。非控件时,使用以下方法

A.在配置文件里增加key相及相应的翻译 Chinese.ini

设定电压:=设定电压:

设定电流:=设定电流:

设定功率:=设定功率:

下位机未响应=下位机未响应

已经读完=已经读完

接收解析为空!=接收解析为空!

执行时间:%02u%02u%02u:%02u=执行时间:%02u%02u%02u:%02u

-%d 串口已打开=-%d 串口已打开

串口已关闭=串口已关闭

title=工业电源控制系统

B.在英文配置文件里,English.ini增加

设定电压:=set vol:

设定电流:=set cur:

设定功率:=set pow:

下位机未响应=lower machine does not respond

已经读完=Finished reading

接收解析为空!=Receive resolve is empty !

执行时间:%02u%02u%02u:%02u=Run time:%02u%02u%02u:%02u

-%d 串口已打开=-%d open

串口已关闭=Serial port closed

title=Industrial Power Control Systems

C.转换函数

CString CVV_485Dlg::translateCString(CString str)
{

		GetPrivateProfileString("Form",str, "", str.GetBuffer(MAX_PATH), MAX_PATH ,lfname);
		return str;
}

D.演示样例

MessageBox(translateCString("接收解析为空!"));

str_temp.Format(translateCString("执行时间:%02u%02u%02u:%02u"),js[3+3],js[3+2],js[3+1],js[3+0]);

6.假设以上方法不行。直接用if else推断

我的淘宝店(专业定制程序):http://item.taobao.com/item.htm?spm=a1z10.1.w4801-6324333243.10.CUj1sr&scm=1007.327.0.0&id=37627387931&pvid=759e0470-a75b-4411-bb53-08cb28cbc88f

时间: 2024-10-15 02:47:36

VC开发多语言界面 多种方法(非常easy) 有源代码的相关文章

VC开发多语言界面 多种方法(很简单) 有源码

(需源码先留邮箱)先上图 1.通过遍历 得到所有控件ID号与TEXT,得到一个中文语言配置文件 void CVV_485Dlg::getCaptionForWindow() //做程序时用,其它时间不用 { //枚举对话框中所有组件 CWnd *pCtrl = GetWindow(GW_CHILD); while(pCtrl!=NULL) { UINT ctrlID = pCtrl->GetDlgCtrlID(); // setControlCaption(pCtrl,ctrlID); CStr

Ubuntu下用glade和GTK+开发C语言界面程序(二)——gcc常用命令介绍

谈到linux,没人不懂gcc,当然,学过C语言的都该知道gcc,毕竟所有的类C编译器基本都有gcc来构成. GCC的意思随着时间的发展也从最初的GNU C Compiler发展到GNU Compiler Collection,也就是GNU编译器的统称集合.GCC对与操作系统与硬件的的支持,可以说是:无处不在. 一.gcc编译过程 GCC的编译过程要分为四个阶段来进行:预处理阶段,编译阶段,汇编阶段,以及链接阶段. 1.预处理阶段(也称预编译阶段) gcc -E helloworld.c -o

Ubuntu下用glade和GTK+开发C语言界面程序(一)

前言:对于大学中计算机系的每年暑假的课设有太多想说的,能从中学到很多东西,当然不排除打酱油的,这些可以掠过哦,凡事都打酱油,人生也是打酱油的吧.2333. 对于大三以前的课设一般的要求都是用C写的,即使你学的面向对象很好,也只能老老实实的来用C写.当然这其中还有好多要说道的东西. 用C写,面对windows下的那不能再吐槽的cmd终端,我就不说太多了,因为已经很少到windows上做东西.用C写,又想写的高大上一点,当然要有图形界面了,在linux上用C写界面程序,GTK+是少不了的,但是运用面

Ubuntu下用glade和GTK+开发C语言界面程序(三)——学习make的用法

makefile的规则 makefile的规则如下: target ... : prerequisites ... command ... ... target可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个label. prerequisites就是要生成那个target所需要的文件或者目标. command就是make需要执行的命令.(任意的shell命令) 这三者的关系就是一个文件依赖关系,target这一个或者多个目标文件依赖与prerequisites中

C语言轻松高效学习方法之:多种方法实现

多种方法实现同一个功能,可以调动你学的所有知识去做,有助于你学的融会贯通. 下面举例来看: 实现功能:求一个整数的位数: 实现语言:C语言: 开发环境:Visual Studio 2017 如:3215是4位数 实现原理: 3215/10 = 321 ----1位数 321/10 = 32 ----又是1位数 32/10 = 3 ----又是1位数 3/10 = 0 ----又是1位数 共4位数,且终止计算条件是/10结果为0的时候: 根据这个原理,先写一个最笨的原始方法: 效果: 这种实现方案

VC与易语言DLL互相调用方法

VC与易语言DLL互相调用方法 时间:2014-05-09 10:11来源:未知 作者:admin 点击: 4194 次 在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在易语言中如何调用VC编写的DLL呢,首先用VC编写一个简单的DLL文件,代码如下: int WINAPI add(int x,int y) { return x+y; } 这是一个简单的两个数加法操作,返回两个数相加的结果,这里我生 在编写程序的时候往往需要调用到别的语言编写的DLL文件,下面先来看一下在

Android &Swift iOS开发:语言与框架对比

转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 从Android到Swift iOS开发:语言与框架对比 我从2009年开始做Android开发,开始接触Swift是在2014年底,当时组里曾经做过一个Demo App,感觉技术还

Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型

Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型 项目主体三个部分 ui界面,中间层,数据库 按照不同的比重可以分为一下三个模型  哑铃型  橄榄型 直板型 哑铃型 开发效率更高,性能反之 ,ui和数据库层比较大,中间的接口层比较薄弱 直板型 橄榄型,追求性能型..中间打,俩偷笑 从语言看ui 界面h5是dsl 4gl+js  3.5gl....数据库是sql ,dsl  4gl 语言代际比较高.带来更高的开发效率性... 作者:: 绰号:老哇的爪子claw of

iOS开发笔记 - 语言篇之Swift

?2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布"We have new programming language"(我们有了新的编程语言)的时候,全场响起了最热烈和持久的掌声,伴随着掌声到来的语言叫Swift.接下来Craig Federighi更是毫不掩饰的告诉大家,Swift将成为主宰iOS和Mac开发的新语言,甚至是整个软件行业中最举足轻重的语言. ??Swift正如它的名字那样迅速.敏捷,但这并不是它的全部.Swift是一个博采众长的