gpt4 book ai didi

c++ - 在文本框中使用 WM_CHAR 输入处理的 gobbledygook

转载 作者:行者123 更新时间:2023-11-28 03:28:46 25 4
gpt4 key购买 nike

在您看来,我仍然可能是一个自杀者,或者更合理地说,我只是一个想要学习如何不惜一切代价经营一家全局性大公司的 child :L

试图在窗口内制作一个文本输入控制台框,我使用了这个:

textString.insert(cursorPosition,1,(char)wParam);
cursorPosition+=1;

同时从窗口的 WM_CHAR 消息中获取 wParam。当我输入一些东西时,我得到了官话!每个按下的键对应 3 个字母,通常应该介于大写字母本身或一些奇怪的 ASCII 之间。例如:

a -> AaA

l -> LlL

\ -> Ü\Ü

shift 键 -> □(空白)带一串空格

据我所知,看起来文本不仅获得了 WM_CHAR,还获得了 WM_KEYDOWN 和 WM_KEYUP。我将代码放在一个在消息处理程序中调用的类中:

case WM_CHAR:
myTextClass(wParam);
break;

有什么问题? =_=''

如果需要,我将发布代码的其他部分。

编辑:好的,请稍等。直觉上,在其他消息之前移动 WM_CHAR 处理解决了这个问题,但我仍然很好奇为什么它会做所有这些事情,如果不是谁会回复的问题的话 xD

最佳答案

当您的 switch 语句中的前一个 case 缺少 break 关键字时,就会出现这种情况。所以它落入了 WM_CHAR 案例。

并且在处理 WM_CHAR 时使用break,就像您所做的那样。这样它就可以传递给 DefWindowProc(),而您确实打算返回,因为您已经处理了消息。

我猜,您没有发布足够的代码,但鞋子很合脚。

关于c++ - 在文本框中使用 WM_CHAR 输入处理的 gobbledygook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com