プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

マウス・キャプチャの取得/設定/解除

2007年09月30日 19時37分11秒 | マウス関連

通常マウスがウインドウ範囲内にあるときだけマウスのメッセージがそのウインドウに送られます。
ウインドウ範囲外でもマウスのメッセージを受け取るには次の手順で行います。(戻る)

  1. マウス・キャプチャの設定(SetCapture)
  2. ウインドウ範囲外でもマウス・メッセージを受け取れる。(マウス処理)
  3. マウス・キャプチャの解除(ReleaseCapture)

その他にもマウスがキャプチャされてるかどうかを GetCapture 関数で調べることができます。

プロトタイプ宣言

HWND SetCapture(
    HWND    hWnd    // ウインドウのハンドル
);

BOOL ReleaseCapture( VOID );

HWND GetCapture( VOID );

使い方

// マウス・キャプチャの設定
SetCapture( hWnd );

// マウス・キャプチャの解除
ReleaseCapture();

// マウス・キャプチャの取得
hWnd = GetCapture();

// マウス・キャプチャの調査
if ( GetCapture() != NULL ){
    MessageBox( hWnd, TEXT("マウス・キャプチャされてます。"), TEXT("確認"), MB_OK );
}
else{
    MessageBox( hWnd, TEXT("マウス・キャプチャされてません。"), TEXT("確認"), MB_OK );
}
  • hWnd がウインドウ・ハンドルです。
  • この関数群を使うことで独自にマウス・ドラッグの処理を実装できます。
  • 他にもマウスの座標をウインドウ外でも受け取れるようになります。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ウインドウの最大サイズ変更 | トップ | マウスの左右ボタンを交換(1) »
最新の画像もっと見る

コメントを投稿

マウス関連」カテゴリの最新記事