看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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:http://ppt.cc/y3Ia 我好像是用這個改的 用com實作 02/22 09:34
Dforce:應該研究一下怎麼用 就可以自己改成自己想要的功能 02/22 09:35
Keitaro:非常感謝您的建議 我會試試看:) 02/23 00:19