檔案拖拽功能

2021-08-02 20:31:05 字數 1617 閱讀 9137

afx_msg 

void

ondropfiles(hdrop hdropinfo);

然後,在cpp檔案中的訊息對映中新增:

on_wm_dropfiles()

最後,在cpp檔案中新增ondropfiles函式的實現,對拖拽的檔案進行處理。下面是完整的**:

class

clxedit : 

public

cedit;//

lxedit.cpp

#include 

"stdafx.h

"#include 

"lxedit.h

"implement_dynamic(clxedit, cedit)

clxedit::clxedit()

clxedit::

~clxedit()

begin_message_map(clxedit, cedit)

on_wm_dropfiles()

end_message_map()

void

clxedit::ondropfiles(hdrop hdropinfo)

可以看到,在上面的**中,得到拖拽檔名的是函式dragqueryfile。這是windows提供的乙個api函式,用來得到一次成功的拖拽操作中的檔名。下面是該函式的原型:

//引數說明:

//hdrop 控制代碼,由訊息傳入。

//ifile 檔案索引。

//如果該引數值為0xffffffff,函式返回拖拽操作中的檔案數量。

//如果該引數值為0到拖拽檔案數量之間的數值,函式將對應索引的檔名拷貝到引數lpszfile所指的字串內。

//lpszfile 存放檔名的字串。如果該引數為null,函式返回需要的字串長度。

//cch 存放檔名的字串的長度。

uint dragqueryfile(hdrop hdrop, uint ifile, lptstr lpszfile, uint cch); //

lxlistbox.h

class

clxlistbox : 

public

clistbox;//

lxlistbox.cpp

#include 

"stdafx.h

"#include 

"lxlistbox.h

"implement_dynamic(clxlistbox, clistbox)

clxlistbox::clxlistbox()

clxlistbox::

~clxlistbox()

begin_message_map(clxlistbox, clistbox)

on_wm_dropfiles()

end_message_map()

void

clxlistbox::ondropfiles(hdrop hdropinfo)

clistbox::ondropfiles(hdropinfo);}

補充一下,函式dragqueryfile得到的檔名,是帶完整路徑的檔名。

最後,提醒一下:要想你的控制項具有拖拽功能,一定要把它的accept files屬性設定為true!要不,上面寫的那些**是不起作用的!

js拖拽功能

html css mod mod hd mod corner jsvar mod document.getelementbyid mod var hd document.getelementbyid hd var corner document.getelementbyid corner funct...

WPF實現拖拽功能

兩個content控制項之間實現拖拽功能,在乙個控制項中啟動拖拽操作,在另乙個控制項中處理事件,如下,在兩個listview之間拖拽 在啟動拖拽控制項的mousemove事件裡啟動拖拽 private void listview1 mousemove object sender,mouseevent...

CTreeCtrl 節點支援拖拽功能

1 首先,從ctreectrl派生乙個類cxtreectrl。2 此類需處理以下問題 a 基本拖動實現 b 處理無意拖動 c 能處理拖動過程中滾動問題 d 拖動過程中節點會智慧型展開。具體實現辦法 a 基本拖動實現 當我們要拖動乙個專案時,樹型檢視控制項會給它的父視窗傳送tvn begindrag通...