GetKeyboardLayout(0) 似乎已经决定我的线程正在使用某种LANG_GERMAN
、SUBLANG_GERMAN
和. 我试过把它放在一个新项目中,但问题仍然存在......这是我用来测试它的代码。LANG_ENGLISH
SUBLANG_ENGLISH_US
#include <iostream>
#include <Windows.h>
#include <kbd.h>
int main(int argc, char* argv[])
{
std::cout << "Keyboard Layout ID: " << GetKeyboardLayout(0) << "\n";
std::cin.ignore(100, '\n');
return 0;
}
04070409
尽管我认为这是不可能的,但这种情况一直在返回。(或者是吗?如果是的话,我将如何构造它MAKELANGID
?)根据msdn这映射到上述语言的混合。我试过使用LoadKeyboardLayout
withMAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN)
但我只是得到一个标准的LANG_ENGLISH, SUBLANG_ENGLISH
(04090409) 布局。我是否只是读错了文档并搞砸了一些东西,或者这里发生了什么?我没主意了...