游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: bluefire9213

怎么让自画的假文本框接收输入法的输入消息?

[复制链接]

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
 楼主| 发表于 2005-3-27 13:27:00 | 显示全部楼层

Re:怎么让自画的假文本框接收输入法的输入消息?

知道输入法的切换\激活API,但还是不知道怎么侦听输入法的输入事件

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
 楼主| 发表于 2005-3-27 16:32:00 | 显示全部楼层

Re:怎么让自画的假文本框接收输入法的输入消息?

全屏模式下的主窗口根本不能与输入法打交道。切换输入法操作根本无效,按任何键也没有候选词条出现。。。更别提wm_ime_char等消息的响应了。

简单一句就是输入法怎么切换也不会出来
  

14

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2005-3-29 17:31:00 | 显示全部楼层

Re:怎么让自画的假文本框接收输入法的输入消息?

呵呵干嘛说的那么复杂啊!
其实是很简单的.
我不会C++
以下是DELPHI实现方法


通过输入法发到窗体的汉字是这个消息 $0286
消息接受后触发这个过程,这个是处理汉字的!
procedure TForm1.WMSize(var Message: TMsg);
var
temp:string;
begin
temp:=chr(message.message shr 8)+chr(message.message mod 256);
label1.Caption:=label1.Caption+temp;
end;

英文的消息我就不知道了,因为DELPHI有ONKeyDown事件
因为特殊字符等都能触发这个事件,所以做了点判断
已经处理了 Backspace 按钮
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

    if (key>32)and(key<129) then
      begin
       label1.Caption:=label1.Caption+chr(key);
      end;
    if  key=8 then
      begin
        if ord(label1.Caption[length(label1.Caption)])<=129 then
          begin
            label1.caption:=copy(label1.Caption,1,length(label1.Caption)-1);
          end
        else
          begin
            label1.caption:=copy(label1.Caption,1,length(label1.Caption)-2);
          end;
      end;
end;

label1.Caption 是一个标签
用来显示输入的汉字

14

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2005-3-29 17:43:00 | 显示全部楼层

Re:怎么让自画的假文本框接收输入法的输入消息?

包括切换输入法,显示当前输入法 半角全角等都好实现
不好实现的是出选字表
但是既然你是用C++的 !恭喜你!
这个就是为你写的

14

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2005-3-29 17:46:00 | 显示全部楼层

Re:怎么让自画的假文本框接收输入法的输入消息?

http://www.crazysoft.org/document/input/7.htm

不过记得写完后帮我生成个DLL
我试着翻译成DELPHI的代码,但是没翻译成.
建议你也用DLL方式
方便升级!
然后把接口公开出来!
呵呵!谢谢!

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2005-4-2 00:10:00 | 显示全部楼层

Re:怎么让自画的假文本框接收输入法的输入消息?

切换不了输入法?
是不是ctrl shift这些切换输入法的键的消息让你处理掉了没传给defwindowproc啊?
之前遇到过一样的问题,就是没把wm_keydown中shift ctrl这些特别放行.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 02:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表