キー イベントを ASCII 文字列、keysym、および ComposeStatus にマップする XLookupString を使用します。
int XLookupString(event_structure, buffer_return, bytes_buffer, keysym_return, status_in_out)
XKeyEvent *event_structure;
char *buffer_return; /* Returns the resulting string (not NULL-terminated). Returned value of the function is the length of the string. */
int bytes_buffer;
KeySym *keysym_return;
XComposeStatus *status_in_out;
これが私のコードです:
char mykey_string;
int arg = 0;
------------------------------------------------------------
case KeyPress:
XLookupString( &event.xkey, &mykey_string, 1, 0, 0 );
arg |= mykey_string;
ただし、ビット操作で 'char' 変数を使用すると、符号拡張によって予期しない結果が生じる可能性があります。これを防ぐことはできますか?
ありがとう