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

マルチマウス管理クラス [詳解]

#include <TnbMultiMouseManager.h>

クラス

struct  IListener
 マルチマウス管理のリスナー [詳解]
 

公開メンバ関数

bool ClipCursor (INDEX index, const RECT &rect)
 [設定] カーソル稼動範囲設定. [詳解]
 
 CMultiMouseManager (void)
 コンストラクタ [詳解]
 
BYTE GetButtonState (INDEX index) const
 [取得] ボタン状態取得. [詳解]
 
POINT GetCursorPos (INDEX index) const
 [取得] カーソル位置取得. [詳解]
 
size_t GetMouseCount (void) const
 [取得] マウス数取得. [詳解]
 
bool IsValid (INDEX index) const
 [確認] マウス有効確認. [詳解]
 
bool SetCursorImage (INDEX index, CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT)
 [設定] カーソルイメージ設定. [詳解]
 
bool SetCursorImage (INDEX index, HCURSOR hCursor, COLORREF color=RGB(255, 0, 255))
 [設定] カーソルイメージ設定. [詳解]
 
bool SetCursorImage (INDEX index, int hotspotX, int hotspotY, CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT)
 [設定] カーソルイメージ設定. [詳解]
 
bool SetCursorPos (INDEX index, int x, int y)
 [設定] カーソル位置設定. [詳解]
 
bool SetDefaultCursorImage (CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT)
 [設定] デフォルトカーソルイメージ設定. [詳解]
 
bool SetDefaultCursorImage (HCURSOR hCursor, COLORREF color=RGB(255, 0, 255))
 [設定] デフォルトカーソルイメージ設定. [詳解]
 
bool SetDefaultCursorImage (int hotspotX, int hotspotY, CBitmapHandle bmp, COLORREF color=CLR_AUTOSELECT)
 [設定] デフォルトカーソルイメージ設定. [詳解]
 
void SetListener (IListener *P)
 [登録] リスナー登録. [詳解]
 
bool ShowCursor (INDEX index, bool isShow)
 [表示] カーソル表示. [詳解]
 
bool Start (IMultiMouseWatcher *pWatcher, HWND hParent=NULL)
 [設定] 開始. [詳解]
 
void Stop (void)
 [設定] 停止. [詳解]
 

詳解

マルチマウス管理クラス

複数のマウスを管理します。カーソルの表示、移動、イベントの通知をそれぞれで管理できます。
使用例
// ヘッダ
class CFooDlg : public CDialog, CMultiMouseManager::IListener
{
;
virtual void OnMultiMouseDevice(INDEX index, EDevice device);
virtual void OnMultiMouseButton(INDEX index, EButton button, EEvent event, int x, int y);
virtual void OnMultiMouseMove(INDEX index, BYTE buttonFlags, int x, int y);
virtual void OnMultiMouseWheel(INDEX index, int d);
;
CRawMouseWatcher m_rmw;
;
// ソース
void CFooDlg::XX(void)
{
m_mmm.SetListener(this);
m_mmm.SetDefaultCursorImage(6, 6, IDB_POINTER); //カーソル形指定
m_mmm.EnableMouseCursor(false); //システムカーソル動作制限
ShowCursor(FALSE); //必要に応じてシステムカーソルを非表示に
m_mmm.Start(&m_rmw, GetSafeHwnd()); //開始
}
void CFooDlg::OnMultiMouseDevice(INDEX index, EDevice device)
{
}
void CFooDlg::OnMultiMouseButton(INDEX index, EButton button, EEvent event, int x, int y)
{
}
void CFooDlg::OnMultiMouseMove(INDEX index, BYTE buttonFlags, int x, int y)
{
}
void CFooDlg::OnMultiMouseWheel(INDEX index, int d)
{
}
CMultiMouseManager(void)
コンストラクタ
bool ShowCursor(INDEX index, bool isShow)
[表示] カーソル表示.
注意
XP 以降のみ有効な API を使用しているため、最初に TnbHotWinver.h をインクルードしてください。
必要ファイル
TnbMultiMouseManager.h
日付
10/04/20 新規作成
10/06/17 IMultiMouseWatcher を使用するように変更。
10/07/14 スレッドセーフ化。
10/07/14 EnableMouseCursor() を廃止(引越し)。

TnbMultiMouseManager.h160 行目に定義があります。

構築子と解体子

◆ CMultiMouseManager()

CMultiMouseManager ( void  )

コンストラクタ

TnbMultiMouseManager.h280 行目に定義があります。

関数詳解

◆ ClipCursor()

bool ClipCursor ( INDEX  index,
const RECT &  rect 
)

[設定] カーソル稼動範囲設定.

引数
indexマウスインデックス
rect稼動範囲
戻り値
true成功
false失敗

TnbMultiMouseManager.h508 行目に定義があります。

◆ GetButtonState()

BYTE GetButtonState ( INDEX  index) const

[取得] ボタン状態取得.

覚え書き
マウスインデックスが不正な場合も 0 が返ります。
引数
indexマウスインデックス
戻り値
ボタン状態

TnbMultiMouseManager.h563 行目に定義があります。

◆ GetCursorPos()

POINT GetCursorPos ( INDEX  index) const

[取得] カーソル位置取得.

覚え書き
マウスインデックスが不正な場合も 0, 0 が返ります。
引数
indexマウスインデックス
戻り値
位置

TnbMultiMouseManager.h545 行目に定義があります。

◆ GetMouseCount()

size_t GetMouseCount ( void  ) const

[取得] マウス数取得.

現在認識しているマウス数を取得できます。

戻り値
マウス数.

TnbMultiMouseManager.h404 行目に定義があります。

◆ IsValid()

bool IsValid ( INDEX  index) const

[確認] マウス有効確認.

引数
indexマウスインデックス
戻り値
true有効.
false無効.

TnbMultiMouseManager.h416 行目に定義があります。

◆ SetCursorImage() [1/3]

bool SetCursorImage ( INDEX  index,
CBitmapHandle  bmp,
COLORREF  color = CLR_AUTOSELECT 
)

[設定] カーソルイメージ設定.

引数
indexマウスインデックス
bmp画像.
color透過色。省略すると、画像の左下の色を適用します。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h452 行目に定義があります。

◆ SetCursorImage() [2/3]

bool SetCursorImage ( INDEX  index,
HCURSOR  hCursor,
COLORREF  color = RGB(255, 0, 255) 
)

[設定] カーソルイメージ設定.

覚え書き
アニメーションカーソルには対応していません。
引数
indexマウスインデックス
hCursorカーソル.
color処理用の背景色。カーソルに含まれない色を指定してください。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h466 行目に定義があります。

◆ SetCursorImage() [3/3]

bool SetCursorImage ( INDEX  index,
int  hotspotX,
int  hotspotY,
CBitmapHandle  bmp,
COLORREF  color = CLR_AUTOSELECT 
)

[設定] カーソルイメージ設定.

引数
indexマウスインデックス
hotspotXホットスポット X
hotspotYホットスポット Y
bmp画像.
color透過色。省略すると、画像の左下の色を適用します。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h432 行目に定義があります。

◆ SetCursorPos()

bool SetCursorPos ( INDEX  index,
int  x,
int  y 
)

[設定] カーソル位置設定.

引数
indexマウスインデックス。
xX 座標
yY 座標
戻り値
true成功
false失敗

TnbMultiMouseManager.h528 行目に定義があります。

◆ SetDefaultCursorImage() [1/3]

bool SetDefaultCursorImage ( CBitmapHandle  bmp,
COLORREF  color = CLR_AUTOSELECT 
)

[設定] デフォルトカーソルイメージ設定.

覚え書き
ホットスポットは左上になります。
引数
bmp画像.
color透過色.省略すると、画像の左下の色を適用します。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h371 行目に定義があります。

◆ SetDefaultCursorImage() [2/3]

bool SetDefaultCursorImage ( HCURSOR  hCursor,
COLORREF  color = RGB(255, 0, 255) 
)

[設定] デフォルトカーソルイメージ設定.

覚え書き
アニメーションカーソルには対応していません。
引数
hCursorカーソル.
color処理用の背景色。カーソルに含まれない色を指定してください。省略するとマゼンタが指定される。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h384 行目に定義があります。

◆ SetDefaultCursorImage() [3/3]

bool SetDefaultCursorImage ( int  hotspotX,
int  hotspotY,
CBitmapHandle  bmp,
COLORREF  color = CLR_AUTOSELECT 
)

[設定] デフォルトカーソルイメージ設定.

引数
hotspotXホットスポット X
hotspotYホットスポット Y
bmp画像.
color透過色.省略すると、画像の左下の色を適用します。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h353 行目に定義があります。

◆ SetListener()

void SetListener ( IListener P)

[登録] リスナー登録.

引数
Pリスナー

TnbMultiMouseManager.h289 行目に定義があります。

◆ ShowCursor()

bool ShowCursor ( INDEX  index,
bool  isShow 
)

[表示] カーソル表示.

引数
indexマウスインデックス
isShowtrue なら表示。 false なら非表示
戻り値
true成功
false失敗

TnbMultiMouseManager.h489 行目に定義があります。

◆ Start()

bool Start ( IMultiMouseWatcher pWatcher,
HWND  hParent = NULL 
)

[設定] 開始.

引数
pWatcherマウスウォッチャーのインスタンス。開始していないものを指定します。
hParent親ウィンドウハンドル。省略すると、グローバルで動作します。
戻り値
true成功.
false失敗.

TnbMultiMouseManager.h302 行目に定義があります。

◆ Stop()

void Stop ( void  )

[設定] 停止.

開始していない場合、何もしません。

TnbMultiMouseManager.h333 行目に定義があります。