好奇怪的问题!!!

yejun52 2003-10-16 10:40:09
在TEdit控件的OnKeyPress事件中捕获输入的中文字符.按理来说输入一个中文字符应该触发两次OnKeyPress事件.却发现一个很奇怪的问题.如果在最前面加个对话框就可以正常捕获两个字符代码.如果不加,只能捕获高8位的字符.代码如下:
MessageDlg(IntToStr((int)Key), mtWarning, TMsgDlgButtons() << mbOK, 0);
static int iInputCount;
static AnsiString sStr;

if( Key < 0 ) // 如果输入的字符是中文字符
{
if(iInputCount == 0)
{
sStr = AnsiString(Key);
iInputCount++;
}
else if(iInputCount >= 1)
{
sStr = AnsiString(Key) + sStr;
iInputCount = 0;
MessageDlg(sStr, mtWarning, TMsgDlgButtons() << mbOK, 0);
}
}
...全文
28 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
佣工7001 2003-10-16
  • 打赏
  • 举报
回复
截获wm_char事件来得保险些
nobill 2003-10-16
  • 打赏
  • 举报
回复
顶一下!
我不懂电脑 2003-10-16
  • 打赏
  • 举报
回复
可以用OnChange事件捕获变化,在判断最后一次的输入
yjy1001 2003-10-16
  • 打赏
  • 举报
回复
我也奇怪 一会看看

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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