游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2421|回复: 0

WM_CHAR消息详解(支持中文问题)

[复制链接]

45

主题

157

帖子

169

积分

注册会员

Rank: 2

积分
169
QQ
发表于 2009-12-4 23:19:00 | 显示全部楼层 |阅读模式
WM_CHAR中如何输入中文,这个问题困惑了我很久,网上也有人不断提问,也没谁给出有效的回答,最后经过我不断探索研究终于搞清楚,现总结出来供大家共享,希望大家少走弯路,有不对的还请指正,不盛感激!
    首先是UNICODE宏下,很简单wParam参数就是字符的UNICODE码,UNICODE编码中ASCII部分保持不变。
    其次就是复杂的多字节编码下(也就是没有定义UNICODE宏的情况下,不要跟我说你不知道)很多问的都是这种情况,我们把wParam参数换为字符型:
    unsigned char c=(unsigned char)wParam;
    这时如果c小于127为ASCII码,并且WM_CHAR只响应一次;
    大于127为汉字内码第一码,紧跟下一个WM_CHAR响应为第二码(也大于127),也就是说如果输入中文的话,会有两个WM_CHAR消息,并且这两个WM_CHAR消息才组成了一个汉字的完整编码。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 15:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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