UAC限制:当一个程序以管理员权限运行时,Windows会将这个程序和其他低权限的程序(如资源管理器)隔离开来。这导致拖拽操作无法正常传递。
ChangeWindowMessageFilterEx(m_hWnd, WM_DROPFILES, MSGFLT_ALLOW, NULL);
此函数被调用也无法解决此问题,原因如下:
无论筛选器设置如何,值小于 WM_USER 的某些消息都需要通过筛选器传递。 尝试使用此函数允许或阻止此类消息时,将不起作用。
#define WM_DROPFILES 0x0233
#define WM_USER 0x0400