TNB Library
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CRawMouseWatcher クラス

生マウス監視クラス [詳解]

#include <TnbRawMouseWatcher.h>

+ CRawMouseWatcher の継承関係図

公開メンバ関数

 CRawMouseWatcher (void)
 コンストラクタ [詳解]
 
virtual size_t GetMouseCount (void) const
 [取得] マウス数取得. [詳解]
 
CStr GetMouseName (INDEX index) const
 [取得] マウスデバイス名取得. [詳解]
 
bool GetMouseSpecified (RID_DEVICE_INFO_MOUSE &_spec, INDEX index) const
 [取得] マウススペック取得. [詳解]
 
bool Refresh (void)
 [設定] 再検索. [詳解]
 
virtual void SetListener (IMultiMouseWatcher::IListener *P)
 [登録] リスナー登録. [詳解]
 
virtual bool Start (void)
 [設定] 監視開始. [詳解]
 
virtual void Stop (void)
 [設定] 監視停止. [詳解]
 

静的公開メンバ関数

static bool EnableMouseCursor (bool isEnable)
 [設定] システムマウス有効無効設定. [詳解]
 
static void HorizontalWheelEvent (int delta)
 [設定] システム水平ホイールイベント. [詳解]
 
static void MouseEvent (DWORD flags, DWORD dx=0, DWORD dy=0, DWORD data=0)
 [設定] システムマウスイベント. [詳解]
 

詳解

生マウス監視クラス

生のマウスのデータを取得することが出来ます。複数のマウスを接続している場合、それぞれのデータを取得できます。
使用例
// ヘッダ
class CFooDlg : public CDialog, CRawMouseWatcher::IListener
{
;
virtual void OnMultiMouseEvent(INDEX index, const RAWMOUSE& mouse);
virtual void OnMultiMouseDevice(INDEX index, EDevice device);
;
CRawMouseWatcher m_mouseWatcher;
;
// ソース
void CFooDlg::XX(void)
{
m_mouseWatcher.SetListener(this);
m_mouseWatcher.Start();
}
void CFooDlg::OnMultiMouseEvent(INDEX index, const RAWMOUSE& mouse)
{
int x = mouse.lLastX; // X 移動量
int y = mouse.lLastY; // Y 移動量
if ( (mouse.usButtonFlags & RI_MOUSE_LEFT_BUTTON_DOWN) != 0 )
{
//左ボタン押下
}
if ( (mouse.usButtonFlags & RI_MOUSE_WHEEL) != 0 )
{
//ホイール
short d = mouse.usButtonData;
}
}
void CFooDlg::OnMultiMouseDevice(INDEX index, EDevice device)
{
}
CRawMouseWatcher(void)
コンストラクタ
注意
XP 以降のみ有効な API を使用しているため、最初に TnbHotWinver.h をインクルードしてください。
必要ファイル
TnbRawMouseWatcher.h
日付
10/04/20 新規作成
10/06/17 IMultiMouseWatcher のサブクラス化
10/07/14 EnableMouseCursor() を追加。
10/07/23 HorizontalWheelEvent() を追加。

TnbRawMouseWatcher.h85 行目に定義があります。

構築子と解体子

◆ CRawMouseWatcher()

CRawMouseWatcher ( void  )

コンストラクタ

TnbRawMouseWatcher.h91 行目に定義があります。

関数詳解

◆ EnableMouseCursor()

static bool EnableMouseCursor ( bool  isEnable)
static

[設定] システムマウス有効無効設定.

マウスを動かしても、システムマウスを動かなくすることが出来ます。 この状態は MouseEvent() による操作指示のみ有効になります。

覚え書き
本メソッドの設定は、プロセスが終了したら元に戻ります。
引数
isEnablefalse ならマウスデバイスでマウスカーソルは動かないようします。 MouseEvent() では動かすことが出来ます。
true なら通常通りです。
戻り値
true成功
false失敗

TnbRawMouseWatcher.h199 行目に定義があります。

◆ GetMouseCount()

virtual size_t GetMouseCount ( void  ) const
virtual

[取得] マウス数取得.

戻り値
マウス数.

IMultiMouseWatcherを再実装しています。

TnbRawMouseWatcher.h109 行目に定義があります。

◆ GetMouseName()

CStr GetMouseName ( INDEX  index) const

[取得] マウスデバイス名取得.

引数
[in]indexマウスインデックス。 0以上、 GetMouseCount() 未満の値です。
戻り値
マウスデバイス名

TnbRawMouseWatcher.h168 行目に定義があります。

◆ GetMouseSpecified()

bool GetMouseSpecified ( RID_DEVICE_INFO_MOUSE &  _spec,
INDEX  index 
) const

[取得] マウススペック取得.

引数
[out]_specスペックが代入されます。
[in]indexマウスインデックス。 0以上、 GetMouseCount() 未満の値です。
戻り値
true取得成功
false失敗(index の値がおかしい)

TnbRawMouseWatcher.h153 行目に定義があります。

◆ HorizontalWheelEvent()

static void HorizontalWheelEvent ( int  delta)
static

[設定] システム水平ホイールイベント.

水平ホイールを実現します。

覚え書き
EnableMouseCorsor で false を指定していても、機能します。
VISTA以降ではマウスイベント、以前ではスクロールメッセージで対応します。
引数
delta移動量。 WHEEL_DELTA の倍数で指定します。
todo:

現在 Opera で動作しないことを確認。

現在 Excel の分割状態ではフォーカス通り動作しないことを確認。

TnbRawMouseWatcher.h244 行目に定義があります。

◆ MouseEvent()

static void MouseEvent ( DWORD  flags,
DWORD  dx = 0,
DWORD  dy = 0,
DWORD  data = 0 
)
static

[設定] システムマウスイベント.

システムマウスイベントを発行します。

覚え書き
EnableMouseCorsor で false を指定していても、機能します。
引数は ::mouse_event() と同じです。
水平ホイールは、 HorizontalWheelEvent() を使います。
引数
flagsフラグ
dxX
dyY
dataデータ

TnbRawMouseWatcher.h230 行目に定義があります。

◆ Refresh()

bool Refresh ( void  )

[設定] 再検索.

覚え書き
デバイスの状態が変わったとき、本インスタンスは自動的に追従します。 本メソッドをコールすると、マウスインデックスも初期化されます。
戻り値
true成功
false失敗

TnbRawMouseWatcher.h184 行目に定義があります。

◆ SetListener()

virtual void SetListener ( IMultiMouseWatcher::IListener P)
virtual

[登録] リスナー登録.

引数
Pリスナー

IMultiMouseWatcherを再実装しています。

TnbRawMouseWatcher.h100 行目に定義があります。

◆ Start()

virtual bool Start ( void  )
virtual

[設定] 監視開始.

戻り値
true成功
false失敗

IMultiMouseWatcherを再実装しています。

TnbRawMouseWatcher.h119 行目に定義があります。

◆ Stop()

virtual void Stop ( void  )
virtual

[設定] 監視停止.

IMultiMouseWatcherを再実装しています。

TnbRawMouseWatcher.h141 行目に定義があります。