



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 前言: 在开发数据库程序时,常常需要输入中文和英文,为此,操作员不得不在两者之间不断切换,能不能实现中英文输入法的自动切换呢?即在需要输入中文的地方系统打开中文输入法,在需要输入英文的地方系统自动关闭中文输入法,回到英文输入法。本人在开发课程输入模块时,根据操作员的实际要求利用C+ Builder5实现了中英文输入法的自动切换功能,每个操作员可以根据他的中文输入法习惯自己定制他所习惯的中文输入法,从而真正实现了多用户中英文输入法的自动切换。 程序设计思路: 每个输入控件有两个属性ImeMode和ImeName,其中ImeMode表明当前的输入法,
2、与中国有关的几个值分别为:imDisable, imClose, imOpen, imDontCare , imChinese。若将ImeMode属性设置为imChinese表明此控件的输入法为中文,而ImeName属性则反映了是何种中文输入法;将ImeMode设置为imClose,则可以关闭已经打开的中文输入法,回到英文输入法状态。由于每个操作员的中文输入法习惯不一样,不能再程序中指定ImeName,所以需要在运行阶段动态指定输入控件的ImeName属性值。 程序实现: C+ Builder有一全局变量Screen,其属性Ime反映的系统的输入法。程序中首先获取系统安装的输入法,用户根据他的
3、喜好选择他所喜欢的中文输入法,将用户的选择写入一INI文件中。在需要切换到中文输入的地方从此INI文件读取数据,瓶将此值赋给输入控件的ImeName,从而实现了动态指定ImeName。 n 新建一Form,命名为Form_IME,在Form_IME上放一ComBox控件ComBox1用来获取系统的输入法,再拖两个Button控件Button1和Button2,设置其Caption属性分别为"修改"和"关闭"。 程序源代码如下: /- #include #pragma hdrstop #include "Ime.h"
4、; #include #include "dm.h" /- #pragma package(smart_init) #pragma link "StatusBarEx" #pragma resource "*.dfm" TForm_IME *Form_IME; /- _fastcall TForm_IME:TForm_IME(TComponent* Owner) : TForm(Owner) /- void _fastcall TForm_IME:FormShow(TObject *Sender) /获取系统的输
5、入法,并赋给ComBox1->Items ComboBox1->Items->Assign(Screen->Imes); /打开ImeSetup.ini文件,若不存在,则自动创建此文件- TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application->ExeName)+"ImeSetup.ini"); /读取以前保存的输入法名称,将显示在ComBox1框中 ComboBox1->Text=pIniFile->ReadString("IME&
6、quot;, "Chinese", ""); delete pIniFile; /- void _fastcall TForm_IME:FormClose(TObject *Sender, TCloseAction &Action) Action=caFree; /退出时自动释放Form所占的内存空间 /- void _fastcall TForm_IME:Button2Click(TObject *Sender) Close(); /- void _fastcall TForm_IME:Button1Click(TObject *Sender)
7、 /若用户重新指定输入法,将选择的输入法重新写回到ImeSetup.ini文件 TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application->ExeName)+"ImeSetup.ini"); pIniFile->WriteString("IME", "Chinese", ComboBox1->Text); delete pIniFile; /同时将所选择的输入法赋给数据模块DM1中的CHImeName变量 DM1->CHIm
8、eName=ComboBox1->Text; /显示中文提示框,表明默认中文输入法修改成功 MessageBoxEx(Handle,"默认中文输入法修改成功", this->Caption.c_str(),MB_ICONINFORMATION+MB_OK,0x0404); /- n 在数据模块的构造函数中读取ImeSetup.ini文件,将用户选择的输入法赋给CHImeName变量 _fastcall TDM1:TDM1(TComponent* Owner) : TDataModule(Owner) /- 读取默认中文输入法- TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application->ExeName)+"ImeSetup.ini"); CHImeName=pIniFile->ReadString("IME"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济宁鱼台县联考2024-2025学年初三下学期中考模拟考试语文试题(文史类)试卷含解析
- 山东省惠民县联考2025年初三中考仿真模拟卷(一)化学试题含解析
- 湖南省益阳市桃江第一中学2024-2025学年高中毕业班历史试题学科备考关键问题指导系列历史试题适应性练习(一)含解析
- 四川省成都市实验中学2024-2025学年高三第二次模拟考试试卷物理试题含解析
- 扬州大学《食品试验设计与统计分析实验》2023-2024学年第一学期期末试卷
- 徐州幼儿师范高等专科学校《医疗健康商务沟通》2023-2024学年第二学期期末试卷
- 内蒙古化工职业学院《视频内容传达》2023-2024学年第二学期期末试卷
- 湖北省学业考:专题二匀变速直线运动的研究复习试卷2025届高考原创押题卷(2)生物试题试卷含解析
- 内蒙古工业职业学院《统计计算与软件实验》2023-2024学年第一学期期末试卷
- 浙江省绍兴市诸暨市2025届数学四下期末统考模拟试题含解析
- 2025年徐州市专业技术人员公需课程 - 心理调适
- 《地理课堂教学技能训练与应用》课件
- 第六单元《电的本领》单元教学设计(教学设计)-2023-2024学年四年级下册科学青岛版
- 2025国网甘肃省电力公司建设分公司招聘劳务外包制30人易考易错模拟试题(共500题)试卷后附参考答案
- 2022年安徽省普通高校分类考试招生和对口招生文化素质测试英语试题
- 煤矿生产调度培训课件
- 2025年金刚石工具项目可行性研究报告
- 2024-2025学年七年级地理下册 7.3 撒哈拉以南的非洲说课稿 (新版)新人教版
- 医疗器械年度培训计划
- 10kv变压器安装施工方案
- 2025年贵州六盘水市水城文旅(集团)有限责任公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论