带有WM_CHAR输入处理文本框中的GobbledyGook

gobbledygook with WM_CHAR input handling in a textbox

本文关键字:GobbledyGook 文本 处理 WM CHAR 输入 带有      更新时间:2023-10-16

我可能仍然是自杀的,或者更合理地只是一个想学习如何不惜一切代价经营一家全球主要公司的孩子:l

试图在窗口内制作一个文本式的控制台盒,我使用了以下方式:

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

从窗口的WM_char消息中获取 wparam 时。当我输入某物时,我会得到Gobbledygook!每个按下的钥匙的3个字母,通常应该是大写本身或一些奇怪的asciis之间的3个字母。例如:

a -> AAA

l -> lll

->üü

shift键 ->□(空白)带有一堆空间

据我所知,看来文本不仅获得WM_CHAR,还可以获得WM_KEYDOWN和WM_KEYUP。我将代码放在消息处理程序中称为的类中:

case WM_CHAR:
myTextClass(wParam);
    break;

有什么问题?= _ =''

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

编辑:好的,等一下。直观地,在其他消息解决了问题之前,将WM_CHAR处理移动,但是我仍然对为什么要做所有这些事情感到好奇,如果不是谁,谁会回复XD

这些是当您的开关语句中的上一个 case 缺少 break 关键字时,这些都是错误的。因此,它落到了WM_CHAR案例中。

和使用 break ,在处理WM_CHAR时。因此,由于您已经处理了该消息,因此它将传递给DefwindowProc(),而您确实要返回。

猜测,您没有发布足够的代码,但是鞋子适合。