電子書籍の厳選無料作品が豊富!

BuilderやMFCを使わずにGUIアプリを作っていますが
2ボタンマウス用のプログラムを
3ボタンホイールマウスのホイール回しに対応したいのですが
ホイールを2方向それぞれ回したときに
発生する「メッセージ」を教えてください
そのメッセージを受けてスクロールメッセージに書いてあるコマンド群を実行するようにしたいのです

A 回答 (5件)

使えるでしょう。


OS が、WM_MOUSEWHEEL メッセージをよこしてくるのに対応させればいいでしょう。
ただ、BorlandC++ の header file に WM_MOUSEWHEEL の定義がないだけでしょう。
(私も win98 で使っているので、VC++ 6.0 を更新してなくて、WM_MOUSEWHEEL の定義はないままです。)
このメッセージの WParam の HIWORD を short で取り出すと、
上下の方向は +- で、回転数は、1ノッチ当たり 120 で
出てきますので、24 で割って、その値を scroll の
SB_LINEUP, SB_LINEDOWN に渡し、1ノッチ 120/24=5行の
スクロールにしています。(5行は好み。環境設定で選べるようにしても良いでしょう)
    • good
    • 0
この回答へのお礼

ありがとうございます
動きました

お礼日時:2004/07/26 12:35

>において


>expressed in multiples or divisions of WHEEL_DELTA, which is 120.
>のところはどう言う意味なのでしょうか?

既にmcWalkerさんがほとんど答えていますが
WHEEL_DELTAとは回転量を表すものらしいです。
VisualC++2003の場合ですがZMouse.hの中に
#define WHEEL_DELTA 120
が定義されています。
ちなみに#define WM_MOUSEWHEEL 0x020AもZMouse.hで定義されていました。

wParamのHIWORDの値はWHEEL_DELTA(120)を分割したもの、あるいはその倍数になるということでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2004/07/26 12:36

#define WM_MOUSEWHEEL 0x020A


が必要ということでは?
VC++ 6.0 にもなくて探して、自前で定義した覚えがある。
説明は、MSDN に(英語で)あった。
    • good
    • 0
この回答へのお礼

ありがとうございます
BorlandC++5.5ではそのままでは使えないのでしょうか?

お礼日時:2004/07/25 22:18

この回答への補足

ありがとうございます

wParam
The high-order word indicates the distance the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120.

において
expressed in multiples or divisions of WHEEL_DELTA, which is 120.
のところはどう言う意味なのでしょうか?

補足日時:2004/07/25 22:14
    • good
    • 0

1回まわしたときのメッセージが2回来るだけですけど。


なにが来るかは認識されてますか?
    • good
    • 0
この回答へのお礼

ありがとうございます

WM_?
の形で来るのでしょうか?

お礼日時:2004/07/25 22:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!