HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0822
レノス左利きかどうか調べるモジュール1解決


レノス

リンク

2008/8/22(Fri) 19:11:42|NO.18629

左利きを無視したソフトが多いので、どうぞ利用してください。
hsptvブラウザですら配慮してくれていない ……


// マウスの役割が反転しているかどうか #module #uselib "user32.dll" #func SwapMouseButton "SwapMouseButton" int // マウスの役割が反転しているかどうか (交換されていたら真) #defcfunc IsMouseButtonSwapped // 反転する。もとから反転されていたら真を返す。 SwapMouseButton 1 : bSwappedMouse = ( stat != 0 ) SwapMouseButton bSwappedMouse // 元の状態に戻す return bSwappedMouse #global // サンプル #if 1 #define ctype WHICH_INT(%1,%2,%3) ( ((%1) != 0) * (%2) | ((%1) == 0) * (%3) ) // ↑条件演算子 ( %1 ? %2 : %3 ) int 専用 // 反転したクリックを正確に感知する screen 0, 240, 180 bSwappedMouseBtn = IsMouseButtonSwapped() *mainlp redraw 2 color 255, 255, 255 : boxf : color pos 20, 20 // getkey するバージョン mes "getkey" getkey bLDown, 1 + bSwappedMouseBtn : mes "左ボタン:"+ bLDown // 左 getkey bRDown, 2 - bSwappedMouseBtn : mes "右ボタン:"+ bRDown // 右 mes // stick を使うバージョン mes "stick" stick key, WHICH_INT( bSwappedMouseBtn, 512, 256 ) // 左クリックを非トリガーにする mes "左ボタン:"+ ( key & WHICH_INT( bSwappedMouseBtn, 512, 256 ) ) mes "右ボタン:"+ ( key & WHICH_INT( bSwappedMouseBtn, 256, 512 ) ) redraw await 20 goto *mainlp #endif

WHICH_INT(a, b, c) は、
a が0以外のとき b を、0の時は c を返すマクロです。

マウス機能が反転されていたら bSwappedMouseBtn が0以外なので、
(bSwappedMouseBtn, 512, 256) は 512 になります。



この記事に返信する


x

リンク

2008/8/22(Fri) 21:01:50|NO.18633

モジュールお疲れ様です

確かに右利きソフトがほとんどを占めてますが、OSレベルで左利き設定にできるので
あまり意識する人が少ないんでしょうね。



ONION software Copyright 1997-2023(c) All rights reserved.