TranslateKey

現在の入力言語と制御キーの状態を考慮して、仮想キーコードによってUnicode文字を返します。

TranslateKey

short  TranslateKey(
   int key_code      // Unicode文字変換するキーコード
   );
  • 引数
引数名初期値I/O詳細
key_code-INUnicode文字変換するキーコード
  • 戻り値

変換が成功した場合のUnicode文字を返し、エラーの場合は-1を返します。

  • その他

この関数は、Win32 APIToUnicodeEx()を使用して、ユーザーが押したキーをUnicode文字に変換します。
ToUnicodeEx()がトリガーされない(たとえばSHIFTキー等を渡した)場合エラーが発生する場合があります。

  • サンプルソース
//+------------------------------------------------------------------+
//| チャートイベント
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam) 
{  

    if ( id == CHARTEVENT_KEYDOWN ) {                      // キーボードのボタン押下判定 

        short temp_unicode = TranslateKey( (int)lparam ); // 押されたキーのコードを変換

        if ( temp_unicode > 0 ) {
            printf( "変換成功。押されたキー:%c 押されたキーコード:0x%x 変換したコード0x%x" 
                     , lparam ,lparam , temp_unicode );
        } else {
            printf( "変換失敗。押されたキー:%c 押されたキーコード:0x%x" , lparam , lparam );
        } 
    }
}

  • 結果
変換成功。押されたキー:A 押されたキーコード:0x41 変換したコード0x61
変換成功。押されたキー:S 押されたキーコード:0x53 変換したコード0x73
変換成功。押されたキー:D 押されたキーコード:0x44 変換したコード0x64
変換成功。押されたキー:F 押されたキーコード:0x46 変換したコード0x66
変換失敗。押されたキー:(Shiftキー)  押されたキーコード:0x10
変換失敗。押されたキー:%(左矢印キー) 押されたキーコード:0x25
変換失敗。押されたキー:'(右矢印キー) 押されたキーコード:0x27

Twitterでフォローしよう

おすすめの記事