【发布时间】:2017-04-25 10:19:59
【问题描述】:
我刚刚创建了一个 MFC 应用程序来从剪贴板中查找文件名
AddClipboardFormatListener(AfxGetApp()->m_pMainWnd->m_hWnd);
LRESULT Cfile_trackerDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_CLIPBOARDUPDATE:
{
AfxBeginThread(FileArrival, NULL);
break;
}
case WM_CHANGECBCHAIN:
{
AfxBeginThread(FileArrival, NULL);
break;
}
}
return CDialog::WindowProc(message, wParam, lParam);
}
UINT FileArrival(LPVOID param)
{
TCHAR lpszFileName[MAX_PATH];
char *szTime;
time_t thistime;
OpenClipboard(0);
HGLOBAL hGlobal = (HGLOBAL)GetClipboardData(CF_HDROP);
if (hGlobal)
{
HDROP hDrop = (HDROP)GlobalLock(hGlobal);
if (hDrop)
{
time(&thistime);
szTime = ctime(&thistime);
DragQueryFile(hDrop, 0, lpszFileName, MAX_PATH);
WriteLog((char*)lpszFileName,1);
GlobalUnlock(hGlobal);
}
CloseClipboard();
}
return 0;
}
当我们复制 1 个文件时,这段代码运行良好,但是当我们复制多个文件时,它只显示第一个文件。有什么方法可以找出复制到剪贴板的所有文件名。
【问题讨论】:
标签: c++ visual-c++ mfc clipboard