0

これら 2 つの API はhttp://linux.die.net/man/3/xgetpointermappingで見つけました。LinuxまたはMacシステムでマウスボタンを交換するために使用できると思います。次の方法で使用しました。

            Display *   curdisp;    // Current display.
    char        curmap[MAX_NUM];// Current mapping.
    int         nmap;       // number of mappings.

curdisp = XOpenDisplay(NULL);

nmap    = XGetPointerMapping(curdisp, curmap, MAX_NUM);
if(!nmap)
    return -1;

if(curmap[0] == '1' && curmap[2] == '3') {
    curmap[0] = '3';
    curmap[2] = '1';
} else {
    curmap[0] = '1';
    curmap[2] = '3';
}

//Set the mapping.
nmap    = XSetPointerMapping(curdisp, curmap, nmap);

しかし、呼び出し XSetPointerMapping は 0 を返し、マウス ボタンには影響しません。XSetPointerMapping を使用してマウス ボタンを交換する例を誰か教えてください。またはそれを正しく使用する方法は?それはすぐに機能しますか?

使用OSはMac OS X 10.7.4です。

4

1 に答える 1

1

ボタン番号は unsigned char として保存されますが、文字としては保存されません。'1' と '3' を 1 と 3 に変更します。

コードはそれらをボタン 49 と 51 にマップし、ボタンに影響を与えてボタン 1 と 3 を使用できなくします。

于 2013-02-11T21:42:04.703 に答える