Demo 0034 窗體支援檔案拖拽

2022-04-07 10:22:39 字數 1150 閱讀 8108

許多支援檔案開啟的軟體如vs、notepad, word,通常都支援滑鼠拖拽檔案到應用軟體窗體實現快速開啟檔案。 本節裡我們也模仿這個功能的實現.

要完成此功能大體思路:

1.  窗體需要支援ws_ex_acceptfile 這個屬性;

2.  通過處理wm_drapfiles訊息使用dragqureyfile, draygetfilelist函式即可得到拖入窗體的檔案及資料夾,用drayclose釋放資源。

一、**演示

case

wm_dropfiles:

else

_tcscat

(sztemp

, szfilepath

);senddlgitemmessage

(hwnd

, idc_lstwndlist

, lb_addstring

, 0, (

lparam

)sztemp);}

} dragfinish

(hdrop);}

break;}

二、**分析

wparam  -- 返回hdrop 物件

lparam    -- not used

2.  uint dragqueryfile(hdrop hdrop, uint ifile, lptstr lpszfile, uint cch)

hdrop   -  wm_dropfilesr wparam 返回的物件

ifile       -  指定被拖入窗體的檔案列表的索引

lpszfile  – 指定檔案列表索引的檔案路徑緩衝

cch        - lpszfile 緩衝大小

功能1. 當ifile為0xffffffff且lpszfile 為null時, 返回被拖入窗體的檔案數;

功能2. 當ifile為檔案列表索引(0~被拖入窗體的檔案數)時, 將檔案列表中索引為ifile的路徑儲存到lpszfile中;

功能3. 當ifile為檔案列表索引(0~被拖入窗體的檔案數)cch為0時,返回檔案列表中索引路徑的長度.

3.  void dragfinish(hdrop hdrop)

hdrop     - wm_dropfilesr wparam 返回的物件

功能:  釋放hdrop物件資源

演示**

幾日行蹤 003

您做過這類軟體嗎?聽見這些話的時候感覺是被問 先生您是 嗎?國內做這類的應該是屈指可數的,也可以說有 的人都不會貪圖他們這幾萬的承包費 真的很難理解他們,難道他們不知道這個軟體的價值嗎?純技術價值不是很大,但是商業價值應該在定位在百萬左右 他們是需要這樣的專案進行開發,進行銷售,但是內部沒有熟悉這類...

shell程式設計003

命令列表 and列表 結果 因為file one存在所以echo命令得以執行,應為echo總是返回true的,所以將會執行 後面的命令,可以file two不存在所以整個if語句返回false,則執行else or列表 結果 if後面的語句執行到true時就不再執行了。結合使用的魅力 f file ...

技術部落格003

從qobject qobject.h 原始碼中可以看到qobject connect的定義是這樣的 cpp view plain copy static bool connect const qobject sender,const char signal,const qobject receive...