Windows の mouseevent 関数の使い方

Windowsでは、以下の手順でMouseEvent関数が利用できます:

  1. 必要なヘッダーファイルを取り込む:#include
  2. イベントハンドラ関数として登録する、マウスイベントのコールバック関数のプロトタイプを定義します。
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam);

第一个数値引数nCodeはイベントの種類を表す整数、2番目の数値引数wParamはイベントの詳細情報を表す符号付き整数、3番目の数値引数lParamはマウスイベント座標を表す長整数。

  1. SetWindowsHookEx
int main()
{
    HHOOK hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0);
    
    // 如果设置鼠标钩子成功,则继续消息循环
    if (hMouseHook != NULL) 
    {
        MSG msg;
        while (GetMessage(&msg, NULL, 0, 0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
    
    // 关闭鼠标钩子
    UnhookWindowsHookEx(hMouseHook);
    
    return 0;
}

上記のコードでは、WH_MOUSE_LL はマウスフックのタイプであり、グローバルマウスイベントフックを表します。

  1. MouseProc関数では、nCodeに応じたマウスイベントを処理できます。具体的には:
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode >= 0)
    {
        // 处理鼠标事件
        if (wParam == WM_LBUTTONDOWN)
        {
            // 处理鼠标左键按下事件
            // ...
        }
        else if (wParam == WM_RBUTTONDOWN)
        {
            // 处理鼠标右键按下事件
            // ...
        }
        // ...
    }
    
    // 调用下一个钩子
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}

上記のコードでは、WM_LBUTTONDOWNとWM_RBUTTONDOWNはそれぞれマウスの左ボタン、右ボタンが押されたイベントを表しています。

MouseEvent 関数を使用する基本的な手順は以上です。具体的なニーズに応じて、MouseProc 関数に他のマウス イベントの処理ロジックを追加できます。

bannerAds