0

我正在使用 CComboBox 控件。当我在其中输入一些字符并检查输入了哪个字母(在 PreTranslateMessage() 中)时,我总是在其消息的 wParam 中得到大写字母。我的 CComboBox 控件没有大写属性 TRUE。为什么会这样?

4

1 回答 1

1

钥匙是有趣的东西。默认状态是什么,小写还是大写?

如果您查看键盘,很可能物理键上有大写字母。默认值:大写

当您键入键时,您需要按住 shift 键来创建大写键,而没有 shift 键则会得到小写。默认值:小写

作为替代方案,您可以使用 Caps Lock 键。Caps Lock 通常处于关闭状态。默认值:小写。

发送到您的应用程序使用的未翻译按键VK_A-VK_Z键码。VK_A 是“A”而不是“a”。默认值:大写。大写锁定和移位稍后在翻译中应用。

这本可以始终如一地设计,但事实并非如此,现在我们陷入了向后兼容的混乱之中。如果您想要“正常”键盘行为,请不要尝试完全复制操作系统行为。有一些你可能不知道的东西,比如“粘滞键”(按住 shift 以获得类似 Caps Lock 的行为)。相反,请使用操作系统的最终结果。对于 Windows,这是WM_CHAR.

于 2015-08-06T12:51:53.400 回答