WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
目次


マウスのボタンを判定するには

イベントプロシージャ等で、押されているマウスのボタンを判定したい場合が あります。下記の例のようにグローバルマウスインスタンスからの情報取得に よって、現在押されているマウスのボタンが判定することガできます。

(*----------------------------------------------------------*)
(*Function for the event procedure                          *)
(*----------------------------------------------------------*)
open Swig
open Mwt
open Mwtlib
let btn_ep obj =
  let status = _WSGIappMouse '() -> getStatus () in begin          (* A *)
    if ((get_int status) land (get_int _WS_MOUSE_BTN1)) <> 0 then    (* B *)
      print_string("左マウスボタンが押されている場合の処理");
    if ((get_int status) land (get_int _WS_MOUSE_BTN2)) <> 0 then    (* C *)
      print_string("中マウスボタンが押されている場合の処理");
    if ((get_int status) land (get_int _WS_MOUSE_BTN3)) <> 0 then    (* D *)
      print_string("右マウスボタンが押されている場合の処理");
    print_newline();
  end;
  ()

let _ = Callback.register "btn_ep" btn_ep

A で、マウスの押下状態を取得します。B,C,D で、 それぞれ、調べたいボタンの判定を行います。= (比較)ではなく、& (アン ド)で判定するのは、複数のボタンが同時に押されている場合があるからです。

Document Release 3.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | 目次

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005