以Edit接收檔案為例
首先,edit屬性中accept files,mutiline兩項為true
.h檔案
#pragma once
// CDropEdit
class CDropEdit : public CEdit
{
DECLARE_DYNAMIC(CDropEdit)
public:
CDropEdit();
virtual ~CDropEdit();
protected:
afx_msg void OnDropFiles(HDROP hDropInfo);
CString strText;
DECLARE_MESSAGE_MAP()
};
.cpp
// DropEdit.cpp : 實現檔案
//
#include "stdafx.h"
#include "CMoveListBox.h"
#include "DropEdit.h"
// CDropEdit
IMPLEMENT_DYNAMIC(CDropEdit, CEdit)
CDropEdit::CDropEdit()
{
strText = "";
}
CDropEdit::~CDropEdit()
{
}
BEGIN_MESSAGE_MAP(CDropEdit, CEdit)
ON_WM_DROPFILES()
END_MESSAGE_MAP()
// CDropEdit 訊息處理常式
void CDropEdit::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加訊息處理常式代碼和/或調用預設值
UINT count;
char filePath[200];
count = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);
if(count)
{
for(UINT i=0; i<count; i++)
{
GetWindowText(strText);
strText +="\r\n";
int pathLen = DragQueryFile(hDropInfo, i, filePath, sizeof(filePath));
strText +=filePath;
SetWindowText(strText);
}
}
SetWindowText(strText);
DragFinish(hDropInfo);
CEdit::OnDropFiles(hDropInfo);
}
歡迎加入vc技術交流群:320307654