我的代码:
void CWGAccountFilterDlg::OnDropFiles(HDROP hDropInfo)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialogEx::OnDropFiles(hDropInfo);
wchar_t lpFilePath[MAX_PATH] = { 0 };
int nCount = DragQueryFile(hDropInfo, -1, NULL, 0);
DragQueryFile(hDropInfo, nCount, lpFilePath, _countof(lpFilePath));
DragFinish(hDropInfo);
GetDlgItem(IDC_EDIT_FILE)->SetWindowText(lpFilePath);
m_FilePath.Format(L"%s", lpFilePath);
}
第二次调用DragQueryFile
返回 0(这种情况是正确的)并且lpFilePath
(这不是预期的)其中没有数据。我确定该nCount
值是有效的,没有缓冲区溢出。
该对话框和 CEdit 控件都将“接受文件”设置为 true。并且有一个名为CMyEdit
implement from的类CEdit
,并处理了该OnDropFiles
函数。