Win32API ダブルクリック時間を取得、設定する

ダブルクリック時間を取得するにはGetDoubleClickTime関数を、設定するにはSetDoubleClickTime関数を用いる。


GetDoubleClickTime関数とSetDoubleClickTime関数の使用例は、以下の通り
このプログラムは、まず現在設定されているダブルクリック時間を取得したあとで、ダブルクリック時間を3秒間に設定している。そして、10秒経過後に元の設定に直すという処理になっている。プログラムがスリープ中に、アイコン等に対して長い間隔でクリックを2回行うとダブルクリックとみなされてしまうことが確認できる。

#include <windows.h>
#include <stdio.h>

int main()
{
    UINT uiDoubleClickTime;
   
    uiDoubleClickTime = GetDoubleClickTime();

    if (SetDoubleClickTime(3 * 1000)) {
        puts("Double click time is 3 seconds.");
        Sleep(10 * 1000);
        SetDoubleClickTime(uiDoubleClickTime);
        puts("Double click time was reset.");
    } else {
        puts("SetDoubleClickTime failed");
    }

    return 0;
}


もし、プログラムがスリープ中にプログラムを停止させてしまった場合は、ダブルクリック時間が3秒に設定されたままになってしまうので、SetDoubleClickTime関数を呼び出すか、Windowsのマウスの設定等で元に戻さないと不便である。恐らくダブルクリック時間の既定は、500ミリ秒程度なので、500ミリ秒に設定すれば、それほど違和感がなく使用できるようになる。




参考

SetDoubleClickTime http://msdn.microsoft.com/ja-jp/library/cc411070.aspx

GetDoubleClickTime http://msdn.microsoft.com/ja-jp/library/cc364628.aspx