为什么不能将文件直接拖放到任务栏按钮上呢苹果,文件无法拖到任务栏

你可能玩过这样一种高级技法:将桌面上的一个文件,拖动到任务栏上的某个窗口按钮,然后等待系统打开按钮对应的程序,然后将文件拖放到打开的窗口中。一切都那么丝滑(你的Windows技能简直NB到爆炸)。

如果你有那么一点点好奇心,则你可能会有这样的疑问:为什么还要等个几秒钟?

如果直接拖放一个文件到任务栏上的按钮上,系统可能会给出这样的提示:“你不能直接将一个文件放到一个任务栏的按钮上,但是你可以在拖动的时候,一直按住鼠标,这个时候,系统会在几秒钟后打开按钮对应的窗口,这样你就可以将文件拖放到窗口中了。”

为什么不设计为:允许用户直接拖放文件到任务栏上的按钮上,还要多此一举,等待几秒后再打开窗口呢?

理想情况下,如果任务栏接收一个IDropTarget::Drop事件,则它可以这样做:

(请注意,当我说”可以这样做”的时候,实际上将一个Drop调用转发出去的内部流程会比表面上看起来复杂得多。)

为什么Windows不允许直接拖放,是因为在Windows中没有一个所谓的”GetDropTargetFromWindow”函数。任务栏即使很希望将拖放操作转发给对应的窗口,但是它也找不到目标窗口。

那,你又会问了,为什么Windows不设计一个GetDropTargetFromWindow函数? 我也不清楚,你得去问问OLE团队那帮人。如果真要我猜的话(我知道我必须这样做,因为你们会一直纠缠我直到我想出一个猜测),可能是因为这会产生这样一个问题:有些人可能会捕获拖放窗口并永远都不释放它,导致用户使用上的问题,甚至触发一个安全漏洞。

当然有人会批评我的解释,所以我想再说一遍:我也不知道答案。 我只是猜测而已,而我的猜测可能是错误的。

总结

确实,允许用户直接将文件拖放到任务栏按钮上,会更快更直接,但是对于我这样的用户来说,我还是比较喜欢现有的操作模式:如果你释放鼠标按键之前,又改变主意了,你可以通过将文件移出窗口,从而可以随时放弃拖放操作。也就是:这项操作有后悔药吃。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。本文来自:《Why can’t you drop directly onto a taskbar button?》

上一篇: 女销售原来靠这样卖房(楼盘置业顾问提成大概多少)
下一篇: 为什么黑子是黑色的,为什么黑子是为黑而黑