【Windows|为什么不能将文件直接拖放到任务栏按钮上呢?】
文章图片
你可能玩过这样一种高级技法:将桌面上的一个文件 , 拖动到任务栏上的某个窗口按钮 , 然后等待系统打开按钮对应的程序 , 然后将文件拖放到打开的窗口中 。 一切都那么丝滑(你的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?》
- 小米科技|不聊性能只谈拍照!新旗舰反向升级成潮流,拍照手机如何选?
- 荣耀|今年过节不乱跑,荣耀智慧屏1499起,和年夜饭一样真香
- 微信|个人收款码与商业收款码有什么不一样
- 三星|试图挽回中国市场,国际大厂不断调价,从高端机皇跌到传统旗舰价
- 华为|别不信!魅族如今处境,雷军早有预料,小米也早已体验
- 京东|适合过年送长辈的数码好物,好用不贵+大牌保障,最后一个太实用
- 魅族|对不起!魅族,这次确实令人失望了
- 任正非|任正非与孟晚舟的姓氏为什么不一样?
- 央视|央视曝光直播电商以次充好乱象!有平台抽样不合格率达50%
- GPU|天玑8000新机快了,相机的配置看上去挺不错,准备冲吗?