sabor****@olive*****
sabor****@olive*****
2004年 2月 11日 (水) 03:16:16 JST
鈴木さん、こんばんは。 平中です。 お世話になってます。 以下インラインです。 > > 鈴木です。 > > http://hp.vector.co.jp/authors/VA000092/win32/misc.html#imagelist-drag > 調べてみたのですが、どうやら > WM_CAPTURECHANGED でマウスキャプチャーのリリースが検知できるようです。 > なので > void CFolderView::CancelDrag(void) > { > if( m_bLDragging == TRUE ){ > m_bLDragging = FALSE; > CImageList::DragLeave(this); > CImageList::EndDrag(); > ReleaseCapture(); > } > } > としておいて、 > (メッセージMAPの部分はわからないのですが) > WM_MBUTTONDOWNとあわせて実装すればできるのかもしれません。 > void CFolderView::OnMButtonDown( UINT nFlags, CPoint point ) > { > CTreeView::OnMButtonDown(nFlags, point); > if( m_bDragging == TRUE ) CancelDrag(); > } > WM_MBUTTONUPでも実験してみようかなと思います。 > > #ちょっと、がんばってみようかなと^^;;;; お恥ずかしい話なのですが、WM_CAPTURECHANGED知りませんでした。 環境がないのでまだ試せてませんが、WM_CAPTURECHANGEDでOnCaptureChanged がよばれるみたいなので、classwizardもしくは手動で該当メッセージマクロを 追加してやれば、 void CFolderView::OnCaptureChanged(CWnd *pWnd) { CancelDrag(void); CBitmapTreeView::OnCaptureChanged(pWnd); } でいけるような気がしてきました。