我正在使用CComboBox控件。当我在其中键入一些字符并检查键入哪个字母(在PreTranslateMessage()中)时,我总是在其消息的wParam中获得大写字母。我的CComboBox控件没有大写属性TRUE。为什么会这样呢?
最佳答案
钥匙是有趣的事情。默认状态是小写还是大写?
如果您看一下键盘,则物理键很可能在其上带有大写字母。默认值:大写
键入键时,需要按住Shift键才能创建大写键,而Shift键却不能小写。默认值:小写
或者,您可以使用Caps Lock键。 Caps Lock通常处于关闭状态。默认值:小写。
发送给您的应用程序的未翻译按键使用VK_A
-VK_Z
按键代码。 VK_A是“ A”而不是“ a”。默认值:大写。大写锁定和移位稍后在翻译中应用。
本来可以设计得一致,但事实并非如此,现在我们陷入困境,无法向后兼容。如果要“正常”键盘行为,请不要尝试完全复制操作系统行为。您可能甚至不知道“ Sticky Keys”(按住Shift键以获得类似Caps Lock的行为)之类的东西。而是使用操作系统的最终结果。对于Windows,为WM_CHAR
。
关于c++ - 在我们输入CComboBox控件时,它是否始终采用大写字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31855549/