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ミリ秒に設定すれば、それほど違和感がなく使用できるようになる。
参考