【问题标题】:Drag & Drop on "not-allowed Zone" Notification拖放“不允许的区域”通知
【发布时间】:2011-11-15 18:16:40
【问题描述】:

我们有以下问题:

我们有一个包含项目的应用程序。

这些项目应该可以拖放到桌面上。

一旦我们进入拖动,项目(在应用程序中)隐藏。

现在,如果我们将它放在任何地方,将创建一个快捷方式,并且该项目应该在应用程序中再次可见。

问题: 当用户将其放到不可放置区域时,操作系统不会发出任何通知(据我们所知),因此我们无法使隐藏的项目(在应用程序中)再次可见。

希望这里有人可以帮助我们,或者有一些好的建议或解决方法。因为这是一个很难解决的问题。

【问题讨论】:

标签: c# .net wpf windows


【解决方案1】:

创建一个时钟为 50/100 毫秒的计时器并检查鼠标按钮状态。如果它被释放并且还没有事件发生,则用户掉到了一个无效的地方。

【讨论】:

  • 嗯,是的,我们已经考虑过这样的事情:只需监视启动拖动后是否发生“鼠标左键释放事件”。但不幸的是,这需要一个系统挂钩,因为我们无法监控应用程序之外的事件。
  • @auser 不需要钩子,你可以试试这个:msdn.microsoft.com/en-us/library/windows/desktop/…,如果它符合你的要求。
  • 非常感谢您的意见!但是,如您的链接描述中所述,该功能似乎并不可靠。 “虽然返回值的最低有效位指示自上次查询以来是否已按下键,但由于 Windows 的抢先式多任务处理性质,另一个应用程序可以调用 GetAsyncKeyState 并接收“最近按下”位而不是您的应用程序. 严格保留返回值的最低有效位的行为是为了与 16 位 Windows 应用程序(非抢占式)兼容,不应依赖。"
猜你喜欢
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 2011-09-21
相关资源
最近更新 更多