中英文输入法的自动切换_第1页
中英文输入法的自动切换_第2页
中英文输入法的自动切换_第3页
中英文输入法的自动切换_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论