与中文输入相关的函数
2008-04-09 04:23:59来源:互联网 阅读 ()
unit Ime;
{=======================================================================
DESIGN BY : 彭国辉
DATE: 2004-10-12
SITE: http://kacarton.yeah.net/
BLOG: http://blog.csdn.net/nhconch
EMAIL: kacarton@sohu.com
文章为作者原创,转载前请先与本人联系,转载请注明文章出处、保留作者信息,谢谢支持!
========================================================================}
uses IMM, Windows;
procedure ImmActive(hWindows: THandle; bChinese: Boolean); //打开或关闭输入法
procedure ImmEnabled(hWindows: THandle; bChinese: Boolean); //允许或禁止输入法
procedure SendDBCSString(hFocus: HWND; const Text: string); //向控件发送中文文本
implementation
//打开或关闭输入法,EX:ImeActive(0, true);
//网上可以搜索到类似的代码,不过用的是IME_THOTKEY_IME_NONIME_TOGGLE,只对繁体版中文Windows有效,用在简体中文Windows下当然不行了
procedure ImmActive(hWindows: THandle; bChinese: Boolean);
begin
if hWindows=0 then hWindows := GetFocus;
if hWindows=0 then Exit;
if ImmIsIME(GetKeyboardLayOut(0)) <> bChinese then
ImmSimulateHotKey(hWindows, IME_CHOTKEY_IME_NONIME_TOGGLE);
end;
//允许与禁止输入法,EX:ImmEnabled(Edit1.Handle, true)
//等效于把Edit1.ImeMode设为imChinese(True)、imClose(False)
procedure ImmEnabled(hWindows: THandle; bChinese: Boolean);
var
hImmc: HIMC;
begin
if hWindows=0 then hWindows := GetFocus;
if hWindows=0 then Exit;
hImmc := ImmGetContext(hWindows);
ImmSetOpenStatus(hImmc, bChinese);
end;
//向控件发送中文文本,EX:SendDBCSString(Edit1.Handle, ''''哗,终于可以发中文啦!'''')
procedure SendDBCSString(hFocus: HWND; const Text: string);
var
i: integer;
ch: byte;
begin
if hFocus = 0 then hFocus := GetFocus;
if hFocus = 0 then Exit;
i := 1;
while i <= Length(Text) do begin
ch := byte(Text[i]);
if Windows.IsDBCSLeadByte(ch) then begin
Inc(i);
SendMessage(hFocus, WM_IME_CHAR, MakeWord(byte(Text[i]), ch), 0);
end
else SendMessage(hFocus, WM_IME_CHAR, word(ch), 0);
Inc(i);
end;
end;
end.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:HTTP Link
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash