作者Keitaro (動き出す時間...)
看板C_and_CPP
標題[問題] 請教MFC上拖曳物件的問題
時間Fri Feb 21 20:13:50 2014
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2008 C++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
None
問題(Question):
MFC CImageList Class使用drag and drop功能
補充說明(Supplement):
小弟請教版上的各位先進MFC的問題。
剛接觸MFC,對於MFC還不是很熟(工作上需要,沒辦法)。
我想要做的功能是,左邊有一個樹狀圖,右邊有一張圖檔,
從左邊的樹狀圖可以使用drag and drop功能將樹狀圖上的icon,
拖曳到圖上的任意位置。
樹狀圖的部分我參考
http://www.codeproject.com/Articles/535368/Versatile-Tree-Control
這sample code來改。
但這作者使用CImageList::DragEnter這函數,
使得拖曳的範圍只能限制在樹狀圖的範圍裡面。
但我的需求是必須要拉到另外一張圖上,要離開樹狀圖的區域範圍。
查了MSDN的CImageList有另一個member function:DragShowNolock,
這函數不會鎖範圍,但也沒任何輸入,測試結果是直接以螢幕左上角當起點,
結果就變成被拖曳的物件位置跟滑鼠差很遠。
請教各位,以上兩個函數的問題是否有辦法修改?
1. DragEnter
範圍被鎖死在樹狀圖內,我想說那我把傳入的參數由樹狀圖物件改為整個Dialog,
結果VC說因為型別不同,無法傳入。
2. DragShowNolock
沒有輸入引數,不知道要怎麼給起始座標值?
如果有輸入引數的話加個offset應該就可以了。
或者說,還有其他更簡單的作法可以拖曳圖?
另外,拖曳到另一張圖上的某位置後,直接放上面,應該是疊圖的功能。
我想說用picture control載入一張圖後,看是否有方法可以設定成背景,
然後拖曳過去的物件圖設為前景,這樣做是否可以?
不好意思這些功能可能都是MFC很基本的東西,但對完全沒摸過MFC的我覺得好難。
請版上各位先進給予不才小弟我一點指導,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.247.137
→ Dforce:應該研究一下怎麼用 就可以自己改成自己想要的功能 02/22 09:35
→ Keitaro:非常感謝您的建議 我會試試看:) 02/23 00:19