步驟如下,delphi 7測試通過
1、在uses 中增加 shellapi
2、增加拖拽的訊息處理函式
//宣告
protected
procedure wmdropfiles(var msg : tmessage); message wm_dropfiles;
//實現
procedure tform1.wmdropfiles(var msg: tmessage);
var a : integer;
buffer: array[0..255] of char;
begin
a := dragqueryfile(msg.wparam, $ffffffff, buffer, 255);
for a := 0
to a - 1
dobegin
//處理選擇多個檔案
dragqueryfile(msg.wparam, a, buffer, 255);
//檔名就在buffer裡面了,
showmessage(buffer);
end;
dragfinish(msg.wparam);
end;
3、指定接收拖拽的視窗控制代碼
procedure tform1.formcreate(sender: tobject);
begin
dragacceptfiles(handle, true);//使視窗控制代碼可以接收拖拽操作
end;
說明:上面**可以使視窗的任何部位都可以接收拖拽檔案,包含選單、按鈕、工具條等,photo shop就是視窗的任何部分都可以接收拖拽檔案。可以修改formcreate中的
dragacceptfiles(handle, true)函式的第乙個引數,這樣可以指定乙個小的區域來接收拖拽檔案,比如乙個listbox或memo等,這時需要修改
procedure
wmdropfiles(
var msg : tmessage); message wm_dropfiles; 因為該函式只是處理視窗的拖拽事件,而不處理子視窗的拖拽事件,乙個變通的方式是做乙個能夠處理所有訊息的函式,然後從中過濾出拖拽事件。
win32 API實現檔案拖拽開啟
在windows中,我們開啟乙個文字檔案後,可以將另乙個文字檔案拖拽進來,從而實現開啟此檔案。那麼這個功能是怎麼實現的呢?經過一下午的實踐,現將具體 分享如下 include define id edit 1 lresult callback wndproc hwnd,uint,wparam,lpa...
讓自己的軟體實現拖拽開啟檔案
讓自己的軟體實現拖拽開啟檔案 宣告 protected procedure wmdropfiles var msg tmessage message wm dropfiles 實現 procedure tformmain.wmdropfiles var msg tmessage var i,n in...
wxpython實現檔案拖拽
我想讓wx.grid裡面的單元格能夠支援檔案拖拽,實現起來挺簡單的,共分3步 1 建立乙個wx.filedroptarget子類的物件,並把要支援拖拽的控制項傳給它的建構函式,此處是grid 2 呼叫grid的setdroptarget函式,並將第1步建立的wx.filedroptarget子類物件...