VC實現檔案拖放

2021-07-02 04:38:07 字數 1669 閱讀 2816

---- dragqueryfile 原 型 為:

uint dragqueryfile( hdrop    hdrop,

uint      ifile,

lptstr   lpszfile,

uint      cch )

----其 中hdrop 是 指 向 拖 動 文 件 結 構 的 句 柄;

---- ifile 是 以0 開 始 的 被 拖 動 文 件 的 序 號, 因 為 一 次 可 能 拖

動 多 個 文 件。 當 此 參 數 設 為0xffffffff, 則 函 數 返 回 拖 動 文 件

的 數 量;

---- lpszfile 是 指 向 文 件 名 的 緩 衝 區;

---- cch 是 文 件 名 緩 衝 區 的 大 小, 即 文 件 名 的 字 符 數。

----以 下 給 出 一 個 完 整 的 實 例, 程 序 運 行 後 彈 出 一 個 對 話

框, 可 以 拖 動 任 意 數 量 的 文 件 或 目 錄 到 上 面, 松 開 鼠 標 後,

程 序 先 顯 示 拖 放 文 件 的 數 量, 然 後 將 拖 放 的 文 件 名 全 部 顯

示 在 一 個list box 控 件 中。 具 體 步 驟 如 下:

建 立 一 個 基 於 對 話 框 的 工 程drop, 然 後 其 他 選 項 全 部 用 缺 省

值。 選 中idd_drop_dialog 對 話 框 中extended styles 的accept files 屬 性。

給idd_drop_dialog 對 話 框 添 加 一 個list box 控 件idc_list1。

在classwizard 中 給cdropdlg 類 添 加 成 員 變 量m_list, 類 型 為 clistbox。

給cdropdlg 類 中 增 加 處 理windows 消 息wm_dropfiles 的 函 數, 接 受 系

統 給 出 的 默 認 名 字ondropfiles, 然 後 輸 入 以 下 代 碼:

void cdropdlg::ondropfiles(hdrop hdropinfo)

::dragfinish (hdropinfo);   // 釋 放 內 存

i=0;

delete lpszfilename;

//    cdialog::ondropfiles(hdropinfo);

此 語 句 注 釋 掉

}----注 意 程 序 中 的::dragfinish (hdropinfo); 語 句 是 必 不 可 少 的, 它

用 於 釋 放windows 為 處 理 文 件 拖 放 而 分 配 的 內 存。

----運 行 此 程 序 可 以 看 到, 拖 動 的 文 件 只 要 一 進 入 對 話 框 的

邊 界, 鼠 標 上 立 刻 會 現 一 個" +", 在 對 話 框 上 的 任 意 位 置 釋

放 鼠 標, 拖 放 的 文 件 都 會 被 接 受, 完 全 解 決 了《 用 mfc 實 現 文

件 拖 放 到 編 輯 框》 必 須 將 文 件 拖 到 編 輯 框 的 不 足; 而 且 拖 放

是 通 過 調 用windows api 函 數 實 現 的, 因 此 程 序 非 常 健 壯, 幾 乎

沒 有 什 麼 維 護 量。 

VB的檔案拖放實現

vb中,很多控制項都可以實現拖放功能。拖放功能有內部控制項間的拖放和由程式外部對程式本身的拖放。檔案拖放應該使用oledragdrop事件,而不是dragdrop事件。oledragdrop事件的語法如下 private subobject oledragdrop data as dataobjec...

檔案拖放操作

我們知道,很多程式都直接檔案拖放。例如常見的excel,word等等。如果要為我們自己的應用程式新增檔案拖放到支援,那麼可以按照如下的一些步驟完成 1.設定窗體的allowdrop屬性為true 2.編寫兩個事件 dragenter和dragdrop 以下是我的乙個小軟體中的兩段 供參考 當拖放檔案...

資料夾實現拖放上傳

現要求能在瀏覽器上直接拖放乙個資料夾實現批量上傳 html5規範還不支援 但是目前chrome 21 瀏覽器支援 現在檔案的拖放上傳採用的是 jquery filedrop.js 這個不支援資料夾 我把這個做了改進,可以支援資料夾。原先 function drop e files count fil...