【发布时间】:2023-02-10 04:50:28
【问题描述】:
简而言之,在编写 VSTO Outlook 加载项时,有什么方法可以拖放任何 Outlook 资源管理器或检查器窗口吗?我需要处理鼠标左键按下和释放(向上)的时间。我想检测这些窗口上的拖放操作。
【问题讨论】:
标签: .net outlook vsto outlook-addin office-addins
简而言之,在编写 VSTO Outlook 加载项时,有什么方法可以拖放任何 Outlook 资源管理器或检查器窗口吗?我需要处理鼠标左键按下和释放(向上)的时间。我想检测这些窗口上的拖放操作。
【问题讨论】:
标签: .net outlook vsto outlook-addin office-addins
没有简单的方法可以检测到这一点。您可以使用 Windows API 函数来子类化任何 Outlook 窗口并处理此类情况。如果控件几乎可以满足您的所有需求,但您还需要更多功能,则可以通过子类化原始控件来更改或添加功能。子类可以具有现有类的所有特性以及您想要赋予它的任何附加特性。您也可以考虑使用 SetWindowsHookEx 函数,它将应用程序定义的挂钩过程安装到挂钩链中。您将安装一个挂钩过程来监视系统的某些类型的事件。这些事件与特定线程或与调用线程在同一桌面中的所有线程相关联。
在您的情况下,如果您需要检测何时将 Outlook 窗口拖到另一个具有不同 DPI 设置的监视器中,您可以考虑处理与 DPI 更改相关的事件。有关详细信息,请参阅Auto-Scale but still process WM_DPICHANGED。
【讨论】: