LANG_GERMAN
GetKeyboardLayout(0) は、スレッドが、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
それは可能ではないと思いますが、戻ってきます。(それとも? はいの場合、どのようにこれを構築しますか?) msdnMAKELANGID
によると、これは上記の言語の混合にマップされます。withを使ってみましたが、標準(04090409) のレイアウトしか得られません。ドキュメントを間違って読んで何かを台無しにしただけですか、それともここで何が起こっていますか? 私はアイデアがありません...LoadKeyboardLayout
MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN)
LANG_ENGLISH, SUBLANG_ENGLISH