« アイコンダブルクリック対応とか | メイン | Word Viewer 2003 »

2005年03月04日

mixi Alert 開発日誌:: TrayIconのダブルクリック対応

    

Borland C++Builderのコンポーネント サンプルのTTrayIconでダブルクリックがサポートされていないのがなんとなくわかった。
単純にイベントに設定できるようにしただけだと、左マウスUPと左ダブルクリックの両方のメッセージがくる。
なので、メニューが表示されつつ、ダブルクリックが効くので、なんか嫌な感じ。
仕方ないので、ダブルクリックメッセージには反応しないようにし、タイマーを使うようにした。
ダブルクリック時間は GetDoubleClickTime() を使って取得し、それをタイマーの時間とする。
で、左マウスUPメッセージがきたらタイマーをスタート、タイマーの処理が実行されるより前にもう一度左マウスUPメッセージがきたら、タイマーをオフにしダブルクリックイベントの処理。タイマーの処理で左マウスUPイベントの処理をするようにした。
これで左クリックも左ダブルクリックも処理できるようになった。

初めから付いている物ではなく、こちらのTrayIconコンポーネントに切り替えたら、実行ファイルのサイズが数十KB減った。
リソースなどは削ったので減っても不思議ではないが、結構減っているのでなんとなく不安。動作は問題ないようだけど。
もともと付いているコンポーネントはサイズでかいのかなぁ。
Delphiでコンパイルされていそうだし。



投稿者 Takenori : 2005年03月04日 19:31




comments powered by Disqus
Total : Today : Yesterday : なかのひと