getwch 不能在easyx窗口中正常读入

1
ava
LeoLeo

2020-4-22

0

主要是控制台获取中文字符有问题,会“卡”,这个是控制台自身的问题,所以 EasyX 屏蔽掉了。

如果要读取中文输入,在 EasyX 有两个方法:

  1. 用 InputBox,在新窗口输入字符串。

2. 用 getmessage 获取字符消息,可以得到中文字符。

可以参考这里:https://qa.codebus.cn/question/2082,详细解释了控制台获取中文存在的问题,以及如何正确获取中文。

ava
慢羊羊

2020-4-22

-1

你的程序入口可能是WinMain,在没有SHOWCONSOLE的情况下无论使用_getch()还是_getwch()都是无效的,MSDN上也有说明

把入口函数改为main并将子系统设为控制台就可以用conio.h里的函数,否则你可能需要用Windows API的接口来实现读入中文字符

ava
无名氏

2020-4-22

我的入口是main, 的确是只能用getch, 不能用getwch.通过监听easyx窗口的WM_CHAR事件可以解决问题, 甚至支持emoji -  LeoLeo  2020-4-22
技术讨论社区