井手@日立ソフトです。

衣笠 文雄 <a...@xc4.so-net.ne.jp> さんが書きました:

> はじめまして。
> 衣笠 文雄と申します。
> Windows98 VC++6.0を使用しています。

> ランチャーソフトを作成しようと思っているのですが、
> デスクトップをダブルクリックするとダブルクリックした場所に
> ランチャーが表示されるといった機能を見かけたのですが、

--略--

> どなたかデスクトップでダブルクリックをするとウィンドウを表示する機能を
> 実現させるにはどのようにすればよいのか教えてください。お願いいたします。

デスクトップウィンドウのハンドルを取得してサブクラス化し、
サブクラスプロシジャでWM_LBUTTONDBLCLKを処理する。
もしくはシステムフックでデスクトップに発生したWM_LBUTTONDBLCLK
を処理するということになると思います。(いずれも試していません)

使用するAPIは以下の通りです。

サブクラス化:SetWindowLong
              CallWindowProc
フック      :SetWindowsHookEx
              UnhookWindowsHookEx
              CallNextHookEx

気になる点としてはデスクトップはリストビューなので、
マウスカーソルの下にアイテム(アイコン)がある場合は
デスクトップに処理させないと、デスクトップ本来の機能が
働かなくなるということです。
これはLVM_HITTESTで問い合せれば良いと思います。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  井手 正治  -Seiji Ide-
     e-mail : i...@and.hitachi-sk.co.jp
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/