2016-10-05 1 views
0

今はQKeySequenceオブジェクトのエントリの文字列を取得してキーコードに変換しています。"F"キーなどでVkKeyScanExが機能しない

問題は、1文字以上のもの(f1-12/delete/end/etc)は動作しません。

QString keys = uiPtr->keySequenceEdit1->keySequence().toString(); 
    const wchar_t keyPtr = *qUtf16Printable(keys); 
    short keyVal = VkKeyScanEx(keyPtr, GetKeyboardLayout(0)); 
    VK = LOBYTE(keyVal); 

どのようにして1文字以上の文字があるキーで動作させることができますか?

答えて

0

qUtf16Printableを返す:「* constのUSHORTとしてSTRを返しますが、警告を回避するために*のconst wchar_t型にキャスト」

しかし、あなたのコード内で使用すると、ポインタに戻り値を代入していない、戻り値があります文字(const wchar_t)に割り当てられます。

おそらく問題

可能性があり

const wchar_t* keyPtr = ......... 

を試してみてください

関連する問題