• ベストアンサー

LVM_HITTEST

todo36の回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

↓に該当しませんか?

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q135786
TAGOSAKU7
質問者

お礼

お礼ではなくさらに補足です。 デスクトップのクリック検出って、グローバルフックを使用しますよね? だから、もしかしてフックしなくてはいけないのかな? うーむ、行き詰まってます・・・

TAGOSAKU7
質問者

補足

英語が苦手なのでよく理解していませんが・・・ これはListViewのHITTESTですよね。 現在の方法で、ListViewのHITTESTは可能なのですが・・・ どうやらSysListView32へのHITTESTはちょっと違うようです。 フラグをセットする以前に、メッセージで送った構造体の各値と、受けている状態をスパイでデバッグした各値が違うのです。 最初に述べたように英語が苦手なので、意味不明な返答でしたらごめんなさい。 もし、参考URLが解決策を書いているのであれば、どのような内容か教えてください。 お願いいたします。

関連するQ&A

  • CTreeCtrlのHitTestメソッドについて

    環境:WinXP VS2005 MFC使用 CTreeCtrlに階層のあるアイテムを複数個設定しています。 ノード開閉時にカーソル位置にあるアイテムをGetCorsorPos()+HitTest()関数を使用し、取得していました。これは正しいアイテムのハンドルが返ってきています。 ところが、ある程度ノードを開いていき、表示しきれなくなるとスクロールが表示されますが、一番下までスクロールしている状態だとアイテムがうまく取得できていないようです。 おそらく、GetCursorPosが画面上の相対座標を取得するのに対し、HitTestで設定するのはツリーコントロール自体の相対座標なので、スクロールしている分だけずれてしまっているのではないかと思っているのですが、スクロールしているサイズを取得する方法がわかりませんでした。ご存じの方いましたらご教授をお願いします。 ※ソース抜粋 void CTestTreeCtrl::OnTvnItemexpanded(NMHDR *pNMHDR, LRESULT *pResult) { CPoint point; GetCursorPos(&point); ScreenToClient(&point); // マウスカーソルの位置からアイテムのハンドルを取得する HTREEITEM hItem = HitTest(point);           ・           ・           ・

  • MFCを使わずファイルをドラッグアンドドロップ

    エクスプローラーなどからドラッグしてきたファイルのパス一覧を MFCを使わず取得したいのですが、 どうすればいいのでしょうか?

  • ツリービューでのドラッグイメージの作成方法

    VC++でエクスプローラもどきを作成しています。 ListViewからTreeViewへ、ファイルをドラッグする際、 マウスカーソルにファイルイメージを追従させようとしています。 ListView内でのドラッグは作成できたのですが、 TreeViewへ移った際に、CreateDragImageでドラッグを作成するためには HTREEITEMを渡さなくてはいけません。 TreeViewで表示させているのは、フォルダアイコンのみなので、 ファイルをドラッグした際に、該当するようなitemがありません。 TreeViewへitemをinsertして表示させるわけにはいかないのですが、 このような場合、どのようにして、 ドラッグイメージを作成すべきなのでしょうか?

  • ListViewで複数項目のドラッグ&ドロップ

    やりたいことは、エクスプローラのようなアイテムのドラッグ&ドロップです。 VB付属のリストビューをそのまま使うと、大きいアイコンで表示した時、複数選択してドラッグしても動くアイテムは、1つとなってしまいます。 複数アイテムを動かす方法を知っている方がいましたら教えてほしいのですが。 環境は、 Windows2000SP3 VisualBasic6SP5 です。

  • ツリービューを使って、エクスプローラのようなものを作りたい。

    タイトルの通りです。VBで、Windowsのエクスプローラのような物を作り、それでファイルを選択したいのですがその作り方が分かりません。 任意の場所から、その最下層までのファイル名やフォルダ名を取得し、それをツリービューに表示させてエクスプローラのようなものを作りたいのです。 どなたか分かる方がおりましたら、お教えください。

  • ウインドウの取得

    かんたんYouTubeプレーヤーというソフトのウインドウハンドルを取得し、プレーヤーウインドウのサイズや位置を変更するプログラムをVB2008で作成しようとしました。このプレーヤーはリストウインドウとプレーヤーウインドウの二つがあるのですが、窓ちぇき!というソフトでタイトルとクラス名を調べたら二つとも同じタイトルとクラス名になっていました。これだとFindWindow関数でウインドウハンドルを取得できません。どうすればよいでしょうか。

  • リストビューのハンドルについて

    リストビューコントロールのハンドルについて疑問に思う事がありまして、ご教授よろしくおねがいします。 通常リストビューをCreateWindow()で作成した時に戻り値として受け取るウィンドウハンドルに対してSetWindowFont()を行うとリストビュー全体のフォントが変更されます。 リストビュー関数にはListView_GetHeader( リストビューハンドル );という関数が用意されていてリストビューのカラム部分のハンドルを取得できます。 このハンドルに対してSetWindowFont()を行うとカラム部分だけのフォントが変更されます。 という事はアイテム部分だけのハンドルを取得し、SetWindowFont()でフォントを変更する事はできるのでしょうか? ご教授よろしくお願いいたします。

  • w10 エクスプローラーでファイル名が表示される

    ある日、いつものようにw10でエクスプローラーのスクロールバーをマウスでドラッグしてスクロールした所、エクスプローラーの左側に表示されているファイルのファイル名が表示される現象が起きるようになってました。 自分で設定を変えた覚えはなく、なぜ突然表示されるようになってしまったのかも分かりませんが、とにかく今までのようにマウスでスクロールバーを動かしてもファイル名が表示されないようにしたいです。 どなたかこの原因不明の現象の原因とその直し方が分かる方、居られましたら、お教え下さいましたら大変助かります。 現象の画像を添付いたします。

  • ListViewにSETしたファイル名からファイルパス取得方法

    今、ファイル名変換プログラムを作成しています。 そこで、ドラッグ&ドロップまたはフォルダ参照ダイアログから、 ファイルステータスをリストビューにセットしました。 (ファイル名)EX) XXXX.txt #その時、ファイルパスは取得できています。 その後、実行する時にリストビューから ファイル名は、GetItemTextで取得できました。 しかし、ファイルパスは取得できません。 ファイル名だけから、ファイルパスを取得するには、 どのようにしたら良いのでしょうか?? ファイル名の変更は、CFileDialog::Renameで考えているので、。。 それとも、他に良い方法はございますでしょうか? また、構造体かなんか定義して、 リストビューへSETする時に構造体にパスを保存し、 実行時に参照して処理すべきでしょうか? ただ、リストビューで選択し「DEL」ボタンで、 削除できるようしてあるので、 この方法は、効率が悪いように思えて・・・ 環境は、Win2000、VC++6.0、MFCで作成しています。 以上、ご教授ください!

  • w10 エクスプローラーでファイル名が勝手に表示

    ある日、いつものようにw10でエクスプローラーのスクロールバーをマウスでドラッグしてスクロールした所、今まで表示されてなかったはずの、エクスプローラーの左側に表示されているファイルのファイル名が勝手に表示される現象が起きるようになってしまってました。 自分で設定を変えた覚えはなく、なぜ突然勝手に挙動が変わったのかも分かりませんが、とにかく今までのようにマウスでスクロールバーを動かしても勝手にファイル名が表示されないようにしたいです。 どなたかこの原因不明の現象の原因とその直し方が分かる方、居られましたら、お教え下さいましたら大変助かります。