初学者的问题!

hotyei 2000-08-07 12:15:00

小弟初学C++ Builder刚十天,现在想写一个打字练习软件,遇到也下面的问题,特向各位请教:

在程序中我需要接收键盘的输入(注意:是中文输入),因为TRichEdit的显示达不到我的要求,所以我打算在Form中接收,而用Canvas显示。如果输入的是英文,在Keydown事件中就可以正确接收。但如果要求输入的是中文的话,要知道中文输入一般都是由几个字母打出一个中文的,但我在输入这几个字母的时候(还未按下空格打出中文字),每按一下健,Form都会收到一个KeyDown事件,而且Key的值都大于0xa0(中文)。

我想问,如TRichEdit这样的类最初是怎么接收输入的,如果我想Form接收输入,应怎么做?
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotyei 2000-08-14
  • 打赏
  • 举报
回复
大家怎么不说话啦?
hotyei 2000-08-11
  • 打赏
  • 举报
回复
那TRichEdit怎样改变所选字符的背景色(注意:是“所选字符”)?

BTW:先不谈这么深入的问题,我想知道如果你要做一个打字练习软件,那你怎么做?用什么作为输入?
Wingsun 2000-08-10
  • 打赏
  • 举报
回复
TRichEdit不可能不支持背景色的改变,
RichEdit1->SelAttribute可以改变的字符的属性。不知道你是如何重载那个事件的,不同的方法处理方式不一样。一般情况下是不能屏蔽的,如果不用TRichedit也可以使用TMemo类啊。
Wingsun 2000-08-10
  • 打赏
  • 举报
回复
TRichEdit不可能不支持背景色的改变,
RichEdit1->SelAttributes可以改变的字符的属性。不知道你是如何重载那个事件的,不同的方法处理方式不一样。一般情况下是不能屏蔽的,如果不用TRichedit也可以使用TMemo类啊。
hotyei 2000-08-10
  • 打赏
  • 举报
回复
回WingSun及TopCat:

谢谢你们的回答。首先,关的TRichEdit不能满足我的要求,指的是TRichEdit不能改变所选字符的背景颜色(我只知道CRichEdit 2.0可以)。再者,我初学CB,好像我重载了事件(比如OnChange),它执行我的代码后,还会执行原来的代码。我想知道如何屏蔽事件,因为我不希望TRichEdit接受MouseDown之类的事件(如果接受了,那光标的位置就会改变,但这个是打字练习软件啊!)。
TopCat 2000-08-09
  • 打赏
  • 举报
回复
Form的KeyDown的确有这个问题.你可以用RichEdit的OnChange事件,配合KeyPress事件屏蔽一些特殊按键,应该能行.不知你所说的"显示达不到要求"指的是什么,其实TRichEdit控件是可以控制到没个字符的.
文字的前景色可以用SelAttributes中的Color来改变.背景色在控件中直接修改的方法我还不知道,但是可以先用Windows API GetDC来取得控件的DC值, 然后用把该DC赋值给一个Image,再用自画的方法来实现,若需要更具体的方法,欢迎跟我讨论.我的E-Mail: jimingxin@21cn.com
Wingsun 2000-08-09
  • 打赏
  • 举报
回复
为何TRichEdit达不到你的要求?如果不行你也可以使用TMemo类啊。
hotyei 2000-08-08
  • 打赏
  • 举报
回复
怎么没有人回答,难道是太简单,所以不愿意回答。再问TRichEdit是怎样改变所选文字的背景色和前景色的?

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧