文章图片
你可能玩过这样一种高级技法:将桌面上的一个文件 , 拖动到任务栏上的某个窗口按钮 , 然后等待系统打开按钮对应的程序 , 然后将文件拖放到打开的窗口中 。 一切都那么丝滑(你的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?》
【Windows|为什么不能将文件直接拖放到任务栏按钮上呢?】
- 显示器|首款QD-OLED显示器来了:规格非常强悍,售价比想象低不少
- iPad|iPadmini6从发售之日起,果冻屏现象就一直有,那为什么会出现这种现象?
- 耳机|realmeGT2Pro官方降价500元,还送耳机,不用犹豫了
- 薇娅方|淘宝直播相关人士回应“薇娅将3月复出”:不太可能
- 辟谣|相关人员:薇娅复出不太可能;宁德时代辟谣与特斯拉谈崩丨邦早报
- |水深套路多,二手机到底怎么买才不会被坑?
- oled屏幕|为什么总有人说OLED屏幕伤眼?为什么有人非LCD屏幕手机不用?
- 刘海屏|iPhone刘海屏,三星也开始学了,还有点不伦不类!
- 富士|富士Fujifilm部分相机出现macOS系统不兼容问题
- 阿里巴巴|阿里被罚182亿!腾讯为什么至今安然无恙?