Step 1:
BEGIN_MESSAGE_MAP(CWISH_ENCRYPT_FOLDERDlg, CDialog)
ON_WM_DROPFILES()
END_MESSAGE_MAP()
Step 2:
class
CWISH_ENCRYPT_FOLDERApp : public CWinApp
{
public
:
CWISH_ENCRYPT_FOLDERApp();
//
重写
public:
virtual BOOL InitInstance();
//
实现
afx_msg void OnDropFiles(HDROP hDropInfo);
DECLARE_MESSAGE_MAP()
};
Step 3:
BOOL CWISH_ENCRYPT_FOLDERDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CWnd::DragAcceptFiles();
//
设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
//
执行此操作
SetIcon(m_hIcon, TRUE); //
设置大图标
SetIcon(m_hIcon, FALSE); //
设置小图标
// TODO:
在此添加额外的初始化代码
return TRUE; //
除非设置了控件的焦点,否则返回 TRUE
}
Step 4:
//
文件拖放并在编辑框显示拖放文件路径
void
CWISH_ENCRYPT_FOLDERDlg::OnDropFiles(HDROP hDropInfo)
{
char *lpszFileName=new char[512], cFileCount[10];
int nFileCount, i;
nFileCount=::DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 512);
//::AfxMessageBox(itoa(nFileCount,cFileCount,10));
//for (i=0; i<nFileCount; i++)
//{
if(nFileCount == 1)
{
i = 0;
UINT nChars=::DragQueryFile(hDropInfo, i, &lpszFileName[0], 512);
CString str(&lpszFileName[0], nChars);
m_editPath.SetWindowText(str);
}
else
{
::AfxMessageBox("
拖放文件的数量不能多于1个!"
,MB_OK,0);
}
//}
::DragFinish(hDropInfo); //
释放内存
i=0;
delete []lpszFileName;
// CDialog::OnDropFiles(hDropInfo);
此语句注释掉
}